Lines Matching refs:CXXRecordDecl

35   const CXXRecordDecl *DerivedClass;
40 const CXXRecordDecl *VirtualBase;
50 BaseOffset(const CXXRecordDecl *DerivedClass,
51 const CXXRecordDecl *VirtualBase, CharUnits NonVirtualOffset)
69 const CXXRecordDecl *VirtualBase;
81 const CXXRecordDecl *MostDerivedClass;
91 const CXXRecordDecl *LayoutClass;
112 typedef llvm::DenseMap<std::pair<const CXXRecordDecl *, unsigned>,
115 typedef llvm::DenseMap<const CXXRecordDecl *, unsigned> SubobjectCountMapTy;
125 typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy;
133 FinalOverriders(const CXXRecordDecl *MostDerivedClass,
135 const CXXRecordDecl *LayoutClass);
156 FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass,
158 const CXXRecordDecl *LayoutClass)
196 const CXXRecordDecl *OverriderRD = Method.Method->getParent();
220 const CXXRecordDecl *DerivedRD,
225 const CXXRecordDecl *VirtualBase = nullptr;
246 const CXXRecordDecl *Base = Element.Base->getType()->getAsCXXRecordDecl();
259 const CXXRecordDecl *BaseRD,
260 const CXXRecordDecl *DerivedRD) {
315 const CXXRecordDecl *DerivedRD =
316 cast<CXXRecordDecl>(cast<RecordType>(CanDerivedReturnType)->getDecl());
318 const CXXRecordDecl *BaseRD =
319 cast<CXXRecordDecl>(cast<RecordType>(CanBaseReturnType)->getDecl());
330 const CXXRecordDecl *RD = Base.getBase();
348 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
380 const CXXRecordDecl *RD = Base.getBase();
384 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
538 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits>
544 const CXXRecordDecl *MostDerivedClass;
549 const CXXRecordDecl *LayoutClass;
559 llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBases;
582 void AddVBaseOffsets(const CXXRecordDecl *Base,
590 VCallAndVBaseOffsetBuilder(const CXXRecordDecl *MostDerivedClass,
591 const CXXRecordDecl *LayoutClass,
628 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) {
677 const CXXRecordDecl *RD = Base.getBase();
680 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
727 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
741 VCallAndVBaseOffsetBuilder::AddVBaseOffsets(const CXXRecordDecl *RD,
748 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
777 typedef llvm::SmallSetVector<const CXXRecordDecl *, 8>
780 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits>
794 const CXXRecordDecl *MostDerivedClass;
807 const CXXRecordDecl *LayoutClass;
817 llvm::DenseMap<const CXXRecordDecl *, VCallOffsetMap> VCallOffsetsForVBases;
885 typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy;
933 const CXXRecordDecl *FirstBaseInPrimaryBaseChain,
940 const CXXRecordDecl *FirstBaseInPrimaryBaseChain,
971 void DeterminePrimaryVirtualBases(const CXXRecordDecl *RD,
977 void LayoutVTablesForVirtualBases(const CXXRecordDecl *RD,
988 const CXXRecordDecl *MostDerivedClass,
991 const CXXRecordDecl *LayoutClass)
1225 const CXXRecordDecl *BaseRD = Base.getBase();
1226 const CXXRecordDecl *DerivedRD = Derived.getBase();
1369 const CXXRecordDecl *FirstBaseInPrimaryBaseChain,
1387 const CXXRecordDecl *RD = FirstBaseInPrimaryBaseChain;
1394 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
1429 typedef llvm::SmallSetVector<const CXXRecordDecl *, 8> BasesSetVectorTy;
1441 const CXXRecordDecl *PrimaryBase = Bases[I - 1];
1459 const CXXRecordDecl *FirstBaseInPrimaryBaseChain,
1471 const CXXRecordDecl *RD = Base.getBase();
1474 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) {
1695 const CXXRecordDecl *RD = Base.getBase();
1723 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
1757 const CXXRecordDecl *RD = Base.getBase();
1759 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
1766 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
1807 const CXXRecordDecl *RD, CharUnits OffsetInLayoutClass,
1812 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) {
1840 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
1863 const CXXRecordDecl *RD, VisitedVirtualBasesSetTy &VBases) {
1869 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
2079 const CXXRecordDecl *RD = I->second.getBase();
2275 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent();
2285 ItaniumVTableContext::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD,
2286 const CXXRecordDecl *VBase) {
2328 ItaniumVTableContext::computeVTableRelatedInformation(const CXXRecordDecl *RD) {
2351 const CXXRecordDecl *VBase =
2369 const CXXRecordDecl *MostDerivedClass, CharUnits MostDerivedClassOffset,
2370 bool MostDerivedClassIsVirtual, const CXXRecordDecl *LayoutClass) {
2435 const CXXRecordDecl *MostDerivedClass;
2533 const CXXRecordDecl *LastVBase,
2573 const CXXRecordDecl *MostDerivedClass, const VPtrInfo *Which)
2681 const CXXRecordDecl *PrevRD = Element.Class,
2766 const CXXRecordDecl *RD,
2810 static bool isDirectVBase(const CXXRecordDecl *Base, const CXXRecordDecl *RD) {
2819 const CXXRecordDecl *LastVBase,
2821 const CXXRecordDecl *RD = Base.getBase();
2829 const CXXRecordDecl *NextBase = nullptr, *NextLastVBase = LastVBase;
2840 } else if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) {
3133 static bool setsIntersect(const llvm::SmallPtrSet<const CXXRecordDecl *, 4> &A,
3134 const ArrayRef<const CXXRecordDecl *> &B) {
3135 for (ArrayRef<const CXXRecordDecl *>::iterator I = B.begin(), E = B.end();
3167 const CXXRecordDecl *RD,
3178 llvm::SmallPtrSet<const CXXRecordDecl*, 4> VBasesSeen;
3180 const CXXRecordDecl *Base = B.getType()->getAsCXXRecordDecl();
3225 if (const CXXRecordDecl *VB = P->getVBaseWithVPtr())
3296 const CXXRecordDecl *RD) {
3339 const CXXRecordDecl *RD, const MethodVFTableLocationsTy &NewMethods,
3402 const CXXRecordDecl *RD) {
3418 if (const CXXRecordDecl *VBPtrBase = Layout.getBaseSharingVBPtr()) {
3431 const CXXRecordDecl *CurVBase = VB.getType()->getAsCXXRecordDecl();
3439 unsigned MicrosoftVTableContext::getVBTableIndex(const CXXRecordDecl *Derived,
3440 const CXXRecordDecl *VBase) {
3447 MicrosoftVTableContext::enumerateVBTables(const CXXRecordDecl *RD) {
3452 MicrosoftVTableContext::getVFPtrOffsets(const CXXRecordDecl *RD) {
3460 MicrosoftVTableContext::getVFTableLayout(const CXXRecordDecl *RD,
3480 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent();