Lines Matching refs:CXXRecordDecl
36 const CXXRecordDecl *DerivedClass;
41 const CXXRecordDecl *VirtualBase;
51 BaseOffset(const CXXRecordDecl *DerivedClass, in BaseOffset()
52 const CXXRecordDecl *VirtualBase, CharUnits NonVirtualOffset) in BaseOffset()
70 const CXXRecordDecl *VirtualBase;
82 const CXXRecordDecl *MostDerivedClass;
92 const CXXRecordDecl *LayoutClass;
113 typedef llvm::DenseMap<std::pair<const CXXRecordDecl *, unsigned>,
116 typedef llvm::DenseMap<const CXXRecordDecl *, unsigned> SubobjectCountMapTy;
126 typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy;
134 FinalOverriders(const CXXRecordDecl *MostDerivedClass,
136 const CXXRecordDecl *LayoutClass);
157 FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass, in FinalOverriders()
159 const CXXRecordDecl *LayoutClass) in FinalOverriders()
195 const CXXRecordDecl *OverriderRD = Method.Method->getParent(); in FinalOverriders()
219 const CXXRecordDecl *DerivedRD, in ComputeBaseOffset()
224 const CXXRecordDecl *VirtualBase = nullptr; in ComputeBaseOffset()
245 const CXXRecordDecl *Base = Element.Base->getType()->getAsCXXRecordDecl(); in ComputeBaseOffset()
258 const CXXRecordDecl *BaseRD, in ComputeBaseOffset()
259 const CXXRecordDecl *DerivedRD) { in ComputeBaseOffset()
314 const CXXRecordDecl *DerivedRD = in ComputeReturnAdjustmentBaseOffset()
315 cast<CXXRecordDecl>(cast<RecordType>(CanDerivedReturnType)->getDecl()); in ComputeReturnAdjustmentBaseOffset()
317 const CXXRecordDecl *BaseRD = in ComputeReturnAdjustmentBaseOffset()
318 cast<CXXRecordDecl>(cast<RecordType>(CanBaseReturnType)->getDecl()); in ComputeReturnAdjustmentBaseOffset()
329 const CXXRecordDecl *RD = Base.getBase(); in ComputeBaseOffsets()
347 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in ComputeBaseOffsets()
379 const CXXRecordDecl *RD = Base.getBase(); in dump()
383 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in dump()
534 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits>
542 const CXXRecordDecl *MostDerivedClass;
547 const CXXRecordDecl *LayoutClass;
557 llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBases;
580 void AddVBaseOffsets(const CXXRecordDecl *Base,
589 const CXXRecordDecl *MostDerivedClass, in VCallAndVBaseOffsetBuilder()
590 const CXXRecordDecl *LayoutClass, in VCallAndVBaseOffsetBuilder()
628 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in AddVCallAndVBaseOffsets()
681 const CXXRecordDecl *RD = Base.getBase(); in AddVCallOffsets()
684 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in AddVCallOffsets()
732 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in AddVCallOffsets()
746 VCallAndVBaseOffsetBuilder::AddVBaseOffsets(const CXXRecordDecl *RD, in AddVBaseOffsets()
753 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in AddVBaseOffsets()
782 typedef llvm::SmallSetVector<const CXXRecordDecl *, 8>
785 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits>
798 const CXXRecordDecl *MostDerivedClass;
811 const CXXRecordDecl *LayoutClass;
821 llvm::DenseMap<const CXXRecordDecl *, VCallOffsetMap> VCallOffsetsForVBases;
891 typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy;
939 const CXXRecordDecl *FirstBaseInPrimaryBaseChain,
946 const CXXRecordDecl *FirstBaseInPrimaryBaseChain,
977 void DeterminePrimaryVirtualBases(const CXXRecordDecl *RD,
983 void LayoutVTablesForVirtualBases(const CXXRecordDecl *RD,
998 const CXXRecordDecl *MostDerivedClass, in ItaniumVTableBuilder()
1001 const CXXRecordDecl *LayoutClass) in ItaniumVTableBuilder()
1210 const CXXRecordDecl *BaseRD = Base.getBase(); in ComputeThisAdjustmentBaseOffset()
1211 const CXXRecordDecl *DerivedRD = Derived.getBase(); in ComputeThisAdjustmentBaseOffset()
1350 const CXXRecordDecl *FirstBaseInPrimaryBaseChain, in IsOverriderUsed()
1368 const CXXRecordDecl *RD = FirstBaseInPrimaryBaseChain; in IsOverriderUsed()
1375 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in IsOverriderUsed()
1410 typedef llvm::SmallSetVector<const CXXRecordDecl *, 8> BasesSetVectorTy;
1421 for (const CXXRecordDecl *PrimaryBase : in FindNearestOverriddenMethod()
1436 const CXXRecordDecl *FirstBaseInPrimaryBaseChain, in AddMethods()
1448 const CXXRecordDecl *RD = Base.getBase(); in AddMethods()
1451 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in AddMethods()
1679 const CXXRecordDecl *RD = Base.getBase(); in LayoutPrimaryAndSecondaryVTables()
1708 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in LayoutPrimaryAndSecondaryVTables()
1742 const CXXRecordDecl *RD = Base.getBase(); in LayoutSecondaryVTables()
1744 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in LayoutSecondaryVTables()
1751 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in LayoutSecondaryVTables()
1792 const CXXRecordDecl *RD, CharUnits OffsetInLayoutClass, in DeterminePrimaryVirtualBases()
1797 if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in DeterminePrimaryVirtualBases()
1825 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in DeterminePrimaryVirtualBases()
1848 const CXXRecordDecl *RD, VisitedVirtualBasesSetTy &VBases) { in LayoutVTablesForVirtualBases()
1854 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl(); in LayoutVTablesForVirtualBases()
2064 const CXXRecordDecl *RD = I.second.getBase(); in dumpLayout()
2276 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent(); in getMethodVTableIndex()
2286 ItaniumVTableContext::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, in getVirtualBaseOffsetOffset()
2287 const CXXRecordDecl *VBase) { in getVirtualBaseOffsetOffset()
2324 ItaniumVTableContext::computeVTableRelatedInformation(const CXXRecordDecl *RD) { in computeVTableRelatedInformation()
2347 const CXXRecordDecl *VBase = in computeVTableRelatedInformation()
2363 const CXXRecordDecl *MostDerivedClass, CharUnits MostDerivedClassOffset, in createConstructionVTableLayout()
2364 bool MostDerivedClassIsVirtual, const CXXRecordDecl *LayoutClass) { in createConstructionVTableLayout()
2431 const CXXRecordDecl *MostDerivedClass;
2533 const CXXRecordDecl *LastVBase,
2570 const CXXRecordDecl *MostDerivedClass, const VPtrInfo &Which) in VFTableBuilder()
2719 const CXXRecordDecl *PrevRD = Element.Class, in ComputeThisOffset()
2902 const CXXRecordDecl *RD, in GroupNewVirtualOverloads()
2933 static bool isDirectVBase(const CXXRecordDecl *Base, const CXXRecordDecl *RD) { in isDirectVBase()
2942 const CXXRecordDecl *LastVBase, in AddMethods()
2944 const CXXRecordDecl *RD = Base.getBase(); in AddMethods()
2953 const CXXRecordDecl *NextBase = nullptr, *NextLastVBase = LastVBase; in AddMethods()
2964 } else if (const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase()) { in AddMethods()
3101 for (const CXXRecordDecl *Elem : in PrintBasePath()
3264 static bool setsIntersect(const llvm::SmallPtrSet<const CXXRecordDecl *, 4> &A, in setsIntersect() argument
3265 ArrayRef<const CXXRecordDecl *> B) { in setsIntersect()
3266 for (const CXXRecordDecl *Decl : B) { in setsIntersect()
3297 const CXXRecordDecl *RD, in computeVTablePaths()
3308 llvm::SmallPtrSet<const CXXRecordDecl*, 4> VBasesSeen; in computeVTablePaths()
3310 const CXXRecordDecl *Base = B.getType()->getAsCXXRecordDecl(); in computeVTablePaths()
3351 if (const CXXRecordDecl *VB = P->getVBaseWithVPtr()) in computeVTablePaths()
3427 const CXXRecordDecl *RD, CharUnits Offset, in findPathsToSubobject()
3439 const CXXRecordDecl *Base = BS.getType()->getAsCXXRecordDecl(); in findPathsToSubobject()
3467 const CXXRecordDecl *RD, in getOffsetOfFullPath()
3473 const CXXRecordDecl *Base = BSO.getBase(); in getOffsetOfFullPath()
3499 const CXXRecordDecl *RD, in selectBestPath()
3514 const CXXRecordDecl *TopLevelRD = SpecificPath.begin()->getBase(); in selectBestPath()
3533 const CXXRecordDecl *OverridingParent = OverridingMethod->getParent(); in selectBestPath()
3569 const CXXRecordDecl *RD, in computeFullPathsForVFTables()
3603 const CXXRecordDecl *RD) { in computeVTableRelatedInformation()
3651 const CXXRecordDecl *RD, const MethodVFTableLocationsTy &NewMethods, in dumpMethodLocations()
3710 const CXXRecordDecl *RD) { in computeVBTableRelatedInformation()
3727 if (const CXXRecordDecl *VBPtrBase = Layout.getBaseSharingVBPtr()) { in computeVBTableRelatedInformation()
3740 const CXXRecordDecl *CurVBase = VB.getType()->getAsCXXRecordDecl(); in computeVBTableRelatedInformation()
3748 unsigned MicrosoftVTableContext::getVBTableIndex(const CXXRecordDecl *Derived, in getVBTableIndex()
3749 const CXXRecordDecl *VBase) { in getVBTableIndex()
3756 MicrosoftVTableContext::enumerateVBTables(const CXXRecordDecl *RD) { in enumerateVBTables()
3761 MicrosoftVTableContext::getVFPtrOffsets(const CXXRecordDecl *RD) { in getVFPtrOffsets()
3769 MicrosoftVTableContext::getVFTableLayout(const CXXRecordDecl *RD, in getVFTableLayout()
3791 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent(); in getMethodVFTableLocation()