Lines Matching refs:CXXRecordDecl
35 const CXXRecordDecl *DerivedClass;
40 const CXXRecordDecl *VirtualBase;
50 BaseOffset(const CXXRecordDecl *DerivedClass, in BaseOffset()
51 const CXXRecordDecl *VirtualBase, CharUnits NonVirtualOffset) in BaseOffset()
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, in FinalOverriders()
158 const CXXRecordDecl *LayoutClass) in FinalOverriders()
196 const CXXRecordDecl *OverriderRD = Method.Method->getParent(); in FinalOverriders()
220 const CXXRecordDecl *DerivedRD, in ComputeBaseOffset()
225 const CXXRecordDecl *VirtualBase = nullptr; in ComputeBaseOffset()
246 const CXXRecordDecl *Base = Element.Base->getType()->getAsCXXRecordDecl(); in ComputeBaseOffset()
259 const CXXRecordDecl *BaseRD, in ComputeBaseOffset()
260 const CXXRecordDecl *DerivedRD) { in ComputeBaseOffset()
315 const CXXRecordDecl *DerivedRD = in ComputeReturnAdjustmentBaseOffset()
316 cast<CXXRecordDecl>(cast<RecordType>(CanDerivedReturnType)->getDecl()); in ComputeReturnAdjustmentBaseOffset()
318 const CXXRecordDecl *BaseRD = in ComputeReturnAdjustmentBaseOffset()
319 cast<CXXRecordDecl>(cast<RecordType>(CanBaseReturnType)->getDecl()); in ComputeReturnAdjustmentBaseOffset()
330 const CXXRecordDecl *RD = Base.getBase(); in ComputeBaseOffsets()
348 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in ComputeBaseOffsets()
380 const CXXRecordDecl *RD = Base.getBase(); in dump()
384 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in dump()
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, in VCallAndVBaseOffsetBuilder()
591 const CXXRecordDecl *LayoutClass, in VCallAndVBaseOffsetBuilder()
628 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in AddVCallAndVBaseOffsets()
677 const CXXRecordDecl *RD = Base.getBase(); in AddVCallOffsets()
680 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in AddVCallOffsets()
727 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in AddVCallOffsets()
741 VCallAndVBaseOffsetBuilder::AddVBaseOffsets(const CXXRecordDecl *RD, in AddVBaseOffsets()
748 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in AddVBaseOffsets()
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, in ItaniumVTableBuilder()
991 const CXXRecordDecl *LayoutClass) in ItaniumVTableBuilder()
1225 const CXXRecordDecl *BaseRD = Base.getBase(); in ComputeThisAdjustmentBaseOffset()
1226 const CXXRecordDecl *DerivedRD = Derived.getBase(); in ComputeThisAdjustmentBaseOffset()
1369 const CXXRecordDecl *FirstBaseInPrimaryBaseChain, in IsOverriderUsed()
1387 const CXXRecordDecl *RD = FirstBaseInPrimaryBaseChain; in IsOverriderUsed()
1394 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in IsOverriderUsed()
1429 typedef llvm::SmallSetVector<const CXXRecordDecl *, 8> BasesSetVectorTy;
1441 const CXXRecordDecl *PrimaryBase = Bases[I - 1]; in FindNearestOverriddenMethod()
1459 const CXXRecordDecl *FirstBaseInPrimaryBaseChain, in AddMethods()
1471 const CXXRecordDecl *RD = Base.getBase(); in AddMethods()
1474 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in AddMethods()
1695 const CXXRecordDecl *RD = Base.getBase(); in LayoutPrimaryAndSecondaryVTables()
1723 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in LayoutPrimaryAndSecondaryVTables()
1757 const CXXRecordDecl *RD = Base.getBase(); in LayoutSecondaryVTables()
1759 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in LayoutSecondaryVTables()
1766 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in LayoutSecondaryVTables()
1807 const CXXRecordDecl *RD, CharUnits OffsetInLayoutClass, in DeterminePrimaryVirtualBases()
1812 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in DeterminePrimaryVirtualBases()
1840 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in DeterminePrimaryVirtualBases()
1863 const CXXRecordDecl *RD, VisitedVirtualBasesSetTy &VBases) { in LayoutVTablesForVirtualBases()
1869 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in LayoutVTablesForVirtualBases()
2079 const CXXRecordDecl *RD = I->second.getBase(); in dumpLayout()
2275 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent(); in getMethodVTableIndex()
2285 ItaniumVTableContext::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, in getVirtualBaseOffsetOffset()
2286 const CXXRecordDecl *VBase) { in getVirtualBaseOffsetOffset()
2328 ItaniumVTableContext::computeVTableRelatedInformation(const CXXRecordDecl *RD) { in computeVTableRelatedInformation()
2351 const CXXRecordDecl *VBase = in computeVTableRelatedInformation()
2369 const CXXRecordDecl *MostDerivedClass, CharUnits MostDerivedClassOffset, in createConstructionVTableLayout()
2370 bool MostDerivedClassIsVirtual, const CXXRecordDecl *LayoutClass) { in createConstructionVTableLayout()
2435 const CXXRecordDecl *MostDerivedClass;
2533 const CXXRecordDecl *LastVBase,
2573 const CXXRecordDecl *MostDerivedClass, const VPtrInfo *Which) in VFTableBuilder()
2681 const CXXRecordDecl *PrevRD = Element.Class, in ComputeThisOffset()
2766 const CXXRecordDecl *RD, in GroupNewVirtualOverloads()
2810 static bool isDirectVBase(const CXXRecordDecl *Base, const CXXRecordDecl *RD) { in isDirectVBase()
2819 const CXXRecordDecl *LastVBase, in AddMethods()
2821 const CXXRecordDecl *RD = Base.getBase(); in AddMethods()
2829 const CXXRecordDecl *NextBase = nullptr, *NextLastVBase = LastVBase; in AddMethods()
2840 } else if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in AddMethods()
3133 static bool setsIntersect(const llvm::SmallPtrSet<const CXXRecordDecl *, 4> &A, in setsIntersect() argument
3134 const ArrayRef<const CXXRecordDecl *> &B) { in setsIntersect()
3135 for (ArrayRef<const CXXRecordDecl *>::iterator I = B.begin(), E = B.end(); in setsIntersect()
3167 const CXXRecordDecl *RD, in computeVTablePaths()
3178 llvm::SmallPtrSet<const CXXRecordDecl*, 4> VBasesSeen; in computeVTablePaths()
3180 const CXXRecordDecl *Base = B.getType()->getAsCXXRecordDecl(); in computeVTablePaths()
3225 if (const CXXRecordDecl *VB = P->getVBaseWithVPtr()) in computeVTablePaths()
3296 const CXXRecordDecl *RD) { in computeVTableRelatedInformation()
3339 const CXXRecordDecl *RD, const MethodVFTableLocationsTy &NewMethods, in dumpMethodLocations()
3402 const CXXRecordDecl *RD) { in computeVBTableRelatedInformation()
3418 if (const CXXRecordDecl *VBPtrBase = Layout.getBaseSharingVBPtr()) { in computeVBTableRelatedInformation()
3431 const CXXRecordDecl *CurVBase = VB.getType()->getAsCXXRecordDecl(); in computeVBTableRelatedInformation()
3439 unsigned MicrosoftVTableContext::getVBTableIndex(const CXXRecordDecl *Derived, in getVBTableIndex()
3440 const CXXRecordDecl *VBase) { in getVBTableIndex()
3447 MicrosoftVTableContext::enumerateVBTables(const CXXRecordDecl *RD) { in enumerateVBTables()
3452 MicrosoftVTableContext::getVFPtrOffsets(const CXXRecordDecl *RD) { in getVFPtrOffsets()
3460 MicrosoftVTableContext::getVFTableLayout(const CXXRecordDecl *RD, in getVFTableLayout()
3480 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent(); in getMethodVFTableLocation()