/freebsd/contrib/llvm-project/clang/lib/AST/ |
H A D | CXXInheritance.cpp | 67 bool CXXRecordDecl::isDerivedFrom(const CXXRecordDecl *Base) const { in isDerivedFrom() 73 bool CXXRecordDecl::isDerivedFrom(const CXXRecordDecl *Base, in isDerivedFrom() 78 Paths.setOrigin(const_cast<CXXRecordDecl*>(this)); in isDerivedFrom() 80 const CXXRecordDecl *BaseDecl = Base->getCanonicalDecl(); in isDerivedFrom() 89 bool CXXRecordDecl::isVirtuallyDerivedFrom(const CXXRecordDecl *Base) const { in isVirtuallyDerivedFrom() 99 Paths.setOrigin(const_cast<CXXRecordDecl*>(this)); in isVirtuallyDerivedFrom() 101 const CXXRecordDecl *BaseDecl = Base->getCanonicalDecl(); in isVirtuallyDerivedFrom() 109 bool CXXRecordDecl::isProvablyNotDerivedFrom(const CXXRecordDecl *Base) const { in isProvablyNotDerivedFrom() 110 const CXXRecordDecl *TargetDecl = Base->getCanonicalDecl(); in isProvablyNotDerivedFrom() 111 return forallBases([TargetDecl](const CXXRecordDecl *Base) { in isProvablyNotDerivedFrom() [all …]
|
H A D | DeclCXX.cpp | 76 CXXRecordDecl::DefinitionData::DefinitionData(CXXRecordDecl *D) in DefinitionData() 116 CXXBaseSpecifier *CXXRecordDecl::DefinitionData::getBasesSlowCase() const { in getBasesSlowCase() 120 CXXBaseSpecifier *CXXRecordDecl::DefinitionData::getVBasesSlowCase() const { in getVBasesSlowCase() 124 CXXRecordDecl::CXXRecordDecl(Kind K, TagKind TK, const ASTContext &C, in CXXRecordDecl() function in CXXRecordDecl 127 CXXRecordDecl *PrevDecl) in CXXRecordDecl() 132 CXXRecordDecl *CXXRecordDecl::Create(const ASTContext &C, TagKind TK, in Create() 135 CXXRecordDecl *PrevDecl, in Create() 137 auto *R = new (C, DC) CXXRecordDecl(CXXRecord, TK, C, DC, StartLoc, IdLoc, Id, in Create() 147 CXXRecordDecl * 148 CXXRecordDecl::CreateLambda(const ASTContext &C, DeclContext *DC, in CreateLambda() [all …]
|
H A D | RecordLayoutBuilder.cpp | 41 const CXXRecordDecl *Class; 73 llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsets; 76 llvm::DenseMap<const CXXRecordDecl *, CharUnits> VirtualBaseOffsets; 86 bool getExternalNVBaseOffset(const CXXRecordDecl *RD, CharUnits &BaseOffset) { in getExternalNVBaseOffset() 94 bool getExternalVBaseOffset(const CXXRecordDecl *RD, CharUnits &BaseOffset) { in getExternalVBaseOffset() 110 const CXXRecordDecl *Class; 113 typedef llvm::TinyPtrVector<const CXXRecordDecl *> ClassVectorTy; 125 void AddSubobjectAtOffset(const CXXRecordDecl *RD, CharUnits Offset); 130 void UpdateEmptyFieldSubobjects(const CXXRecordDecl *RD, 131 const CXXRecordDecl *Class, CharUnits Offset, [all …]
|
H A D | VTableBuilder.cpp | 37 const CXXRecordDecl *DerivedClass; 42 const CXXRecordDecl *VirtualBase; 52 BaseOffset(const CXXRecordDecl *DerivedClass, in BaseOffset() 53 const CXXRecordDecl *VirtualBase, CharUnits NonVirtualOffset) in BaseOffset() 71 const CXXRecordDecl *VirtualBase; 83 const CXXRecordDecl *MostDerivedClass; 93 const CXXRecordDecl *LayoutClass; 114 typedef llvm::DenseMap<std::pair<const CXXRecordDecl *, unsigned>, 117 typedef llvm::DenseMap<const CXXRecordDecl *, unsigned> SubobjectCountMapTy; 127 typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy; [all …]
|
H A D | VTTBuilder.cpp | 32 const CXXRecordDecl *MostDerivedClass, in VTTBuilder() 43 const CXXRecordDecl *VTableClass) { in AddVTablePointer() 60 const CXXRecordDecl *RD = Base.getBase(); in LayoutSecondaryVTTs() 68 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl()); in LayoutSecondaryVTTs() 83 const CXXRecordDecl *VTableClass, in LayoutSecondaryVirtualPointers() 85 const CXXRecordDecl *RD = Base.getBase(); in LayoutSecondaryVirtualPointers() 94 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl()); in LayoutSecondaryVirtualPointers() 154 void VTTBuilder::LayoutVirtualVTTs(const CXXRecordDecl *RD, in LayoutVirtualVTTs() 158 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl()); in LayoutVirtualVTTs() 180 const CXXRecordDecl *RD = Base.getBase(); in LayoutVTT()
|
H A D | DeclFriend.cpp | 43 isa<CXXRecordDecl>(D) || in Create() 50 (cast<CXXRecordDecl>(DC)->getTemplateSpecializationKind())); in Create() 61 cast<CXXRecordDecl>(DC)->pushFriendDecl(FD); in Create() 72 FriendDecl *CXXRecordDecl::getFirstFriend() const { in getFirstFriend()
|
/freebsd/contrib/llvm-project/clang/include/clang/AST/ |
H A D | VTableBuilder.h | 27 class CXXRecordDecl; variable 67 static VTableComponent MakeRTTI(const CXXRecordDecl *RD) { in MakeRTTI() 119 const CXXRecordDecl *getRTTIDecl() const { in getRTTIDecl() 121 return reinterpret_cast<CXXRecordDecl *>(getPointer()); in getRTTIDecl() 337 virtual void computeVTableRelatedInformation(const CXXRecordDecl *RD) = 0; 375 typedef llvm::DenseMap<const CXXRecordDecl *, 380 typedef std::pair<const CXXRecordDecl *, 381 const CXXRecordDecl *> ClassPairTy; 395 void computeVTableRelatedInformation(const CXXRecordDecl *RD) override; 411 const VTableLayout &getVTableLayout(const CXXRecordDecl *RD) { in getVTableLayout() [all …]
|
H A D | VTTBuilder.h | 30 class CXXRecordDecl; variable 33 llvm::PointerIntPair<const CXXRecordDecl *, 1, bool> BaseAndIsVirtual; 38 VTTVTable(const CXXRecordDecl *Base, CharUnits BaseOffset, bool BaseIsVirtual) in VTTVTable() 44 const CXXRecordDecl *getBase() const { in getBase() 75 const CXXRecordDecl *MostDerivedClass; 90 using VisitedVirtualBasesSetTy = llvm::SmallPtrSet<const CXXRecordDecl *, 4>; 106 const CXXRecordDecl *VTableClass); 119 const CXXRecordDecl *VTableClass, 129 void LayoutVirtualVTTs(const CXXRecordDecl *RD, 137 VTTBuilder(ASTContext &Ctx, const CXXRecordDecl *MostDerivedClass,
|
H A D | RecordLayout.h | 29 class CXXRecordDecl; variable 59 using VBaseOffsetsMapTy = llvm::DenseMap<const CXXRecordDecl *, VBaseInfo>; 132 llvm::PointerIntPair<const CXXRecordDecl *, 1, bool> PrimaryBase; 135 const CXXRecordDecl *BaseSharingVBPtr; 138 using BaseOffsetsMapTy = llvm::DenseMap<const CXXRecordDecl *, CharUnits>; 167 const CXXRecordDecl *PrimaryBase, bool IsPrimaryBaseVirtual, 168 const CXXRecordDecl *BaseSharingVBPtr, 234 const CXXRecordDecl *getPrimaryBase() const { in getPrimaryBase() 249 CharUnits getBaseClassOffset(const CXXRecordDecl *Base) const { in getBaseClassOffset() 259 CharUnits getVBaseClassOffset(const CXXRecordDecl *VBase) const { in getVBaseClassOffset() [all …]
|
H A D | Mangle.h | 115 virtual std::string getLambdaString(const CXXRecordDecl *Lambda) = 0; 141 virtual void mangleCXXVTable(const CXXRecordDecl *RD, raw_ostream &) = 0; 195 virtual void mangleCXXVTT(const CXXRecordDecl *RD, raw_ostream &) = 0; 196 virtual void mangleCXXCtorVTable(const CXXRecordDecl *RD, int64_t Offset, 197 const CXXRecordDecl *Type, 209 virtual void mangleLambdaSig(const CXXRecordDecl *Lambda, raw_ostream &) = 0; 239 virtual void mangleCXXVFTable(const CXXRecordDecl *Derived, 240 ArrayRef<const CXXRecordDecl *> BasePath, 246 virtual void mangleCXXVBTable(const CXXRecordDecl *Derived, 247 ArrayRef<const CXXRecordDecl *> BasePath, [all …]
|
H A D | BaseSubobject.h | 25 class CXXRecordDecl; variable 32 const CXXRecordDecl *Base; 39 BaseSubobject(const CXXRecordDecl *Base, CharUnits BaseOffset) in BaseSubobject() 43 const CXXRecordDecl *getBase() const { return Base; } in getBase() 60 DenseMapInfo<const clang::CXXRecordDecl *>::getEmptyKey(), 66 DenseMapInfo<const clang::CXXRecordDecl *>::getTombstoneKey(), 71 using PairTy = std::pair<const clang::CXXRecordDecl *, clang::CharUnits>;
|
H A D | DeclFriend.h | 61 friend class CXXRecordDecl; 62 friend class CXXRecordDecl::friend_iterator; 186 class CXXRecordDecl::friend_iterator { 187 friend class CXXRecordDecl; variable 238 inline CXXRecordDecl::friend_iterator CXXRecordDecl::friend_begin() const { in friend_begin() 242 inline CXXRecordDecl::friend_iterator CXXRecordDecl::friend_end() const { in friend_end() 246 inline CXXRecordDecl::friend_range CXXRecordDecl::friends() const { in friends() 250 inline void CXXRecordDecl::pushFriendDecl(FriendDecl *FD) { in pushFriendDecl()
|
H A D | DeclCXX.h | 258 class CXXRecordDecl : public RecordDecl { 343 CXXRecordDecl *Definition; 351 DefinitionData(CXXRecordDecl *D); 438 LambdaDefinitionData(CXXRecordDecl *D, TypeSourceInfo *Info, unsigned DK, in LambdaDefinitionData() 490 void addedClassSubobject(CXXRecordDecl *Base); 509 const CXXRecordDecl *X); 512 CXXRecordDecl(Kind K, TagKind TK, const ASTContext &C, DeclContext *DC, 514 IdentifierInfo *Id, CXXRecordDecl *PrevDecl); 523 CXXRecordDecl *getCanonicalDecl() override { in getCanonicalDecl() 524 return cast<CXXRecordDecl>(RecordDecl::getCanonicalDecl()); in getCanonicalDecl() [all …]
|
/freebsd/contrib/llvm-project/clang/lib/Sema/ |
H A D | SemaAccess.cpp | 63 static CXXRecordDecl *FindDeclaringClass(NamedDecl *D) { in FindDeclaringClass() 71 CXXRecordDecl *DeclaringClass = cast<CXXRecordDecl>(DC); in FindDeclaringClass() 73 DeclaringClass = cast<CXXRecordDecl>(DeclaringClass->getDeclContext()); in FindDeclaringClass() 118 if (isa<CXXRecordDecl>(DC)) { in EffectiveContext() 119 CXXRecordDecl *Record = cast<CXXRecordDecl>(DC); in EffectiveContext() 139 bool includesClass(const CXXRecordDecl *R) const { in includesClass() 150 typedef SmallVectorImpl<CXXRecordDecl*>::const_iterator record_iterator; 154 SmallVector<CXXRecordDecl*, 4> Records; 168 CXXRecordDecl *NamingClass, in AccessTarget() 178 CXXRecordDecl *BaseClass, in AccessTarget() [all …]
|
/freebsd/contrib/llvm-project/clang/lib/CodeGen/ |
H A D | CGVTables.h | 25 class CXXRecordDecl; variable 40 typedef std::pair<const CXXRecordDecl *, BaseSubobject> BaseSubobjectPairTy; 105 uint64_t getSubVTTIndex(const CXXRecordDecl *RD, BaseSubobject Base); 109 uint64_t getSecondaryVirtualPointerIndex(const CXXRecordDecl *RD, 115 GenerateConstructionVTable(const CXXRecordDecl *RD, const BaseSubobject &Base, 122 llvm::GlobalVariable *GetAddrOfVTT(const CXXRecordDecl *RD); 127 const CXXRecordDecl *RD); 136 void GenerateClassData(const CXXRecordDecl *RD); 138 bool isVTableExternal(const CXXRecordDecl *RD);
|
H A D | CGCXXABI.h | 33 class CXXRecordDecl; variable 165 virtual RecordArgABI getRecordArgABI(const CXXRecordDecl *RD) const = 0; 174 isPermittedToBeHomogeneousAggregate(const CXXRecordDecl *RD) const { in isPermittedToBeHomogeneousAggregate() 264 virtual bool canSpeculativelyEmitVTable(const CXXRecordDecl *RD) const = 0; 310 const CXXRecordDecl *ClassDecl, 311 const CXXRecordDecl *BaseClassDecl) = 0; 314 const CXXRecordDecl *RD); 320 const CXXRecordDecl *RD) {} in initializeHiddenVirtualInheritanceMembers() 387 virtual const CXXRecordDecl *getThisArgumentTypeForMethod(GlobalDecl GD) { in getThisArgumentTypeForMethod() 451 const CXXRecordDecl *RD) = 0; [all …]
|
H A D | CGClass.cpp | 41 CharUnits CodeGenModule::getClassPointerAlignment(const CXXRecordDecl *RD) { in getClassPointerAlignment() 60 CharUnits CodeGenModule::getMinimumClassObjectSize(const CXXRecordDecl *RD) { in getMinimumClassObjectSize() 78 const CXXRecordDecl *derivedClass, in getVBaseAlignment() 79 const CXXRecordDecl *vbaseClass) { in getVBaseAlignment() 93 const CXXRecordDecl *baseDecl, in getDynamicOffsetAlignment() 174 const CXXRecordDecl *DerivedClass, CastExpr::path_const_iterator Start, in computeNonVirtualBaseClassOffset() 179 const CXXRecordDecl *RD = DerivedClass; in computeNonVirtualBaseClassOffset() 189 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl()); in computeNonVirtualBaseClassOffset() 201 CodeGenModule::GetNonVirtualBaseClassOffset(const CXXRecordDecl *ClassDecl, in GetNonVirtualBaseClassOffset() 224 const CXXRecordDecl *Derived, in GetAddressOfDirectBaseInCompleteClass() [all …]
|
H A D | MicrosoftCXXABI.cpp | 62 RecordArgABI getRecordArgABI(const CXXRecordDecl *RD) const override; 99 std::vector<CharUnits> getVBPtrOffsets(const CXXRecordDecl *RD) override { in getVBPtrOffsets() 130 llvm::GlobalVariable *getMSCompleteObjectLocator(const CXXRecordDecl *RD, 177 bool canSpeculativelyEmitVTable(const CXXRecordDecl *RD) const override { in canSpeculativelyEmitVTable() 183 const CXXRecordDecl *ClassDecl, 184 const CXXRecordDecl *BaseClassDecl) override; 188 const CXXRecordDecl *RD) override; 194 const CXXRecordDecl *RD) override; 250 const CXXRecordDecl *getThisArgumentTypeForMethod(GlobalDecl GD) override { in getThisArgumentTypeForMethod() 307 void emitVTableTypeMetadata(const VPtrInfo &Info, const CXXRecordDecl *RD, [all …]
|
H A D | CGRecordLayout.h | 147 llvm::DenseMap<const CXXRecordDecl *, unsigned> NonVirtualBases; 150 llvm::DenseMap<const CXXRecordDecl *, unsigned> CompleteObjectVirtualBases; 210 bool hasNonVirtualBaseLLVMField(const CXXRecordDecl *RD) const { in hasNonVirtualBaseLLVMField() 214 unsigned getNonVirtualBaseLLVMFieldNo(const CXXRecordDecl *RD) const { in getNonVirtualBaseLLVMFieldNo() 221 unsigned getVirtualBaseIndex(const CXXRecordDecl *base) const { in getVirtualBaseIndex()
|
/freebsd/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/WebKit/ |
H A D | RefCntblBaseVirtualDtorChecker.cpp | 52 const CXXRecordDecl *ClassDecl) in DerefFuncDeleteExprVisitor() 55 DerefFuncDeleteExprVisitor(const CXXRecordDecl *ClassDecl) in DerefFuncDeleteExprVisitor() 120 const CXXRecordDecl *ClassDecl; 153 bool VisitCXXRecordDecl(const CXXRecordDecl *RD) { in checkASTDecl() 169 const CXXRecordDecl *C = T->getAsCXXRecordDecl(); in checkASTDecl() 192 llvm::SetVector<const CXXRecordDecl *> Decls; in checkASTDecl() 193 llvm::DenseSet<const CXXRecordDecl *> CRTPs; in checkASTDecl() 205 void visitCXXRecordDecl(const CXXRecordDecl *RD) const { in visitCXXRecordDecl() 225 const CXXRecordDecl *C = T->getAsCXXRecordDecl(); in visitCXXRecordDecl() 287 bool shouldSkipDecl(const CXXRecordDecl *RD) const { in shouldSkipDecl() [all …]
|
H A D | PtrTypesSemantics.h | 20 class CXXRecordDecl; variable 35 std::optional<const clang::CXXRecordDecl *> 40 std::optional<bool> isRefCountable(const clang::CXXRecordDecl* Class); 43 bool isRefCounted(const clang::CXXRecordDecl *Class); 47 std::optional<bool> isUncounted(const clang::CXXRecordDecl* Class);
|
/freebsd/contrib/llvm-project/clang/include/clang/InstallAPI/ |
H A D | Visitor.h | 57 bool VisitCXXRecordDecl(const CXXRecordDecl *D); 62 std::string getMangledCXXVTableName(const CXXRecordDecl *D) const; 65 std::string getMangledCXXRTTI(const CXXRecordDecl *D) const; 66 std::string getMangledCXXRTTIName(const CXXRecordDecl *D) const; 76 void emitVTableSymbols(const CXXRecordDecl *D, const AvailabilityInfo &Avail,
|
/freebsd/contrib/llvm-project/clang/include/clang/Sema/ |
H A D | DelayedDiagnostic.h | 61 MemberNonce _, CXXRecordDecl *NamingClass, in AccessedEntity() 68 BaseNonce _, CXXRecordDecl *BaseClass, in AccessedEntity() 69 CXXRecordDecl *DerivedClass, AccessSpecifier Access) in AccessedEntity() 81 CXXRecordDecl *getNamingClass() const { return NamingClass; } in getNamingClass() 84 CXXRecordDecl *getBaseClass() const { in getBaseClass() 85 assert(!IsMember); return cast<CXXRecordDecl>(Target); in getBaseClass() 87 CXXRecordDecl *getDerivedClass() const { return NamingClass; } in getDerivedClass() 119 CXXRecordDecl *NamingClass;
|
/freebsd/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ |
H A D | LLVMConventionsChecker.cpp | 197 static bool IsPartOfAST(const CXXRecordDecl *R) { in IsPartOfAST() 204 CXXRecordDecl *baseD = cast<CXXRecordDecl>(baseT->getDecl()); in IsPartOfAST() 216 const CXXRecordDecl *Root; 221 ASTFieldVisitor(const CXXRecordDecl *root, BugReporter &br, in ASTFieldVisitor() 230 static void CheckASTMemory(const CXXRecordDecl *R, BugReporter &BR, in CheckASTMemory() 297 check::ASTDecl<CXXRecordDecl>, 300 void checkASTDecl(const CXXRecordDecl *R, AnalysisManager& mgr, in checkASTDecl()
|
H A D | MoveChecker.cpp | 147 ObjectKind classifyObject(const MemRegion *MR, const CXXRecordDecl *RD) const; 152 const CXXRecordDecl *RD, MisuseKind MK) const; 154 bool belongsTo(const CXXRecordDecl *RD, const llvm::StringSet<> &Set) const; 159 const CXXRecordDecl *RD, MisuseKind MK) in MovedBugVisitor() 181 const CXXRecordDecl *RD; 211 const CXXRecordDecl *RD, MisuseKind MK, 217 ExplodedNode *tryToReportBug(const MemRegion *Region, const CXXRecordDecl *RD, 351 const CXXRecordDecl *RD, MisuseKind MK, in modelUse() 392 const CXXRecordDecl *RD, in tryToReportBug() 483 const CXXRecordDecl *RD = MethodDecl->getParent(); in checkPostCall() [all …]
|