Home
last modified time | relevance | path

Searched refs:CXXRecordDecl (Results 1 – 25 of 266) sorted by relevance

1234567891011

/freebsd/contrib/llvm-project/clang/lib/AST/
H A DCXXInheritance.cpp67 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 DDeclCXX.cpp76 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 DRecordLayoutBuilder.cpp41 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 DVTableBuilder.cpp37 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 DVTTBuilder.cpp32 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 DDeclFriend.cpp43 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 DVTableBuilder.h27 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 DVTTBuilder.h30 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 DRecordLayout.h29 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 DMangle.h115 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 DBaseSubobject.h25 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 DDeclFriend.h61 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 DDeclCXX.h258 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 DSemaAccess.cpp63 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 DCGVTables.h25 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 DCGCXXABI.h33 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 DCGClass.cpp41 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 DMicrosoftCXXABI.cpp62 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 DCGRecordLayout.h147 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 DRefCntblBaseVirtualDtorChecker.cpp52 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 DPtrTypesSemantics.h20 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 DVisitor.h57 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 DDelayedDiagnostic.h61 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 DLLVMConventionsChecker.cpp197 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 DMoveChecker.cpp147 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 …]

1234567891011