Lines Matching refs:CXXRecordDecl
42 const CXXRecordDecl *Class;
65 const CXXRecordDecl *Class;
68 typedef llvm::TinyPtrVector<const CXXRecordDecl *> ClassVectorTy;
80 void AddSubobjectAtOffset(const CXXRecordDecl *RD, CharUnits Offset);
85 void UpdateEmptyFieldSubobjects(const CXXRecordDecl *RD,
86 const CXXRecordDecl *Class,
106 bool CanPlaceSubobjectAtOffset(const CXXRecordDecl *RD,
112 bool CanPlaceFieldSubobjectAtOffset(const CXXRecordDecl *RD,
113 const CXXRecordDecl *Class,
124 EmptySubobjectMap(const ASTContext &Context, const CXXRecordDecl *Class) in EmptySubobjectMap()
144 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in ComputeEmptySubobjectSizes()
170 const CXXRecordDecl *MemberDecl = RT->getAsCXXRecordDecl(); in ComputeEmptySubobjectSizes()
186 EmptySubobjectMap::CanPlaceSubobjectAtOffset(const CXXRecordDecl *RD, in CanPlaceSubobjectAtOffset()
204 void EmptySubobjectMap::AddSubobjectAtOffset(const CXXRecordDecl *RD, in AddSubobjectAtOffset()
258 for (CXXRecordDecl::field_iterator I = Info->Class->field_begin(), in CanPlaceBaseSubobjectAtOffset()
306 for (CXXRecordDecl::field_iterator I = Info->Class->field_begin(), in UpdateEmptyBaseSubobjects()
333 EmptySubobjectMap::CanPlaceFieldSubobjectAtOffset(const CXXRecordDecl *RD, in CanPlaceFieldSubobjectAtOffset()
334 const CXXRecordDecl *Class, in CanPlaceFieldSubobjectAtOffset()
351 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in CanPlaceFieldSubobjectAtOffset()
361 const CXXRecordDecl *VBaseDecl = I.getType()->getAsCXXRecordDecl(); in CanPlaceFieldSubobjectAtOffset()
371 for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); in CanPlaceFieldSubobjectAtOffset()
394 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl()) in CanPlaceFieldSubobjectAtOffset()
404 const CXXRecordDecl *RD = RT->getAsCXXRecordDecl(); in CanPlaceFieldSubobjectAtOffset()
437 void EmptySubobjectMap::UpdateEmptyFieldSubobjects(const CXXRecordDecl *RD, in UpdateEmptyFieldSubobjects()
438 const CXXRecordDecl *Class, in UpdateEmptyFieldSubobjects()
457 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in UpdateEmptyFieldSubobjects()
466 const CXXRecordDecl *VBaseDecl = I.getType()->getAsCXXRecordDecl(); in UpdateEmptyFieldSubobjects()
475 for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end(); in UpdateEmptyFieldSubobjects()
489 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl()) { in UpdateEmptyFieldSubobjects()
501 const CXXRecordDecl *RD = RT->getAsCXXRecordDecl(); in UpdateEmptyFieldSubobjects()
522 typedef llvm::SmallPtrSet<const CXXRecordDecl*, 4> ClassSetTy;
582 const CXXRecordDecl *PrimaryBase;
592 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsetsMapTy;
606 const CXXRecordDecl *FirstNearlyEmptyVBase;
610 llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBases;
622 llvm::DenseMap<const CXXRecordDecl *, CharUnits> ExternalBaseOffsets;
625 llvm::DenseMap<const CXXRecordDecl *, CharUnits> ExternalVirtualBaseOffsets;
653 void Layout(const CXXRecordDecl *D);
669 typedef llvm::DenseMap<const CXXRecordDecl *, BaseSubobjectInfo *>
682 void ComputeBaseSubobjectInfo(const CXXRecordDecl *RD);
686 BaseSubobjectInfo *ComputeBaseSubobjectInfo(const CXXRecordDecl *RD,
691 void DeterminePrimaryBase(const CXXRecordDecl *RD);
693 void SelectPrimaryVBase(const CXXRecordDecl *RD);
699 void LayoutNonVirtualBases(const CXXRecordDecl *RD);
708 void LayoutVirtualBases(const CXXRecordDecl *RD,
709 const CXXRecordDecl *MostDerivedClass);
770 RecordLayoutBuilder::SelectPrimaryVBase(const CXXRecordDecl *RD) { in SelectPrimaryVBase()
775 const CXXRecordDecl *Base = I.getType()->getAsCXXRecordDecl(); in SelectPrimaryVBase()
799 void RecordLayoutBuilder::DeterminePrimaryBase(const CXXRecordDecl *RD) { in DeterminePrimaryBase()
816 const CXXRecordDecl *Base = I.getType()->getAsCXXRecordDecl(); in DeterminePrimaryBase()
847 RecordLayoutBuilder::ComputeBaseSubobjectInfo(const CXXRecordDecl *RD, in ComputeBaseSubobjectInfo()
872 const CXXRecordDecl *PrimaryVirtualBase = nullptr; in ComputeBaseSubobjectInfo()
905 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in ComputeBaseSubobjectInfo()
925 void RecordLayoutBuilder::ComputeBaseSubobjectInfo(const CXXRecordDecl *RD) { in ComputeBaseSubobjectInfo()
929 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in ComputeBaseSubobjectInfo()
967 RecordLayoutBuilder::LayoutNonVirtualBases(const CXXRecordDecl *RD) { in LayoutNonVirtualBases()
1020 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in LayoutNonVirtualBases()
1083 RecordLayoutBuilder::LayoutVirtualBases(const CXXRecordDecl *RD, in LayoutVirtualBases()
1084 const CXXRecordDecl *MostDerivedClass) { in LayoutVirtualBases()
1085 const CXXRecordDecl *PrimaryBase; in LayoutVirtualBases()
1101 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in LayoutVirtualBases()
1152 llvm::DenseMap<const CXXRecordDecl *, CharUnits>::iterator Known; in LayoutBase()
1281 void RecordLayoutBuilder::Layout(const CXXRecordDecl *RD) { in Layout()
1307 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in Layout()
1314 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in Layout()
1773 if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(D)) { in FinishLayout()
1936 const CXXRecordDecl *RD) { in computeKeyFunction()
2002 static bool mustSkipTailPadding(TargetCXXABI ABI, const CXXRecordDecl *RD) { in mustSkipTailPadding()
2141 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsetsMapTy;
2149 void cxxLayout(const CXXRecordDecl *RD);
2155 void initializeCXXLayout(const CXXRecordDecl *RD);
2156 void layoutNonVirtualBases(const CXXRecordDecl *RD);
2157 void layoutNonVirtualBase(const CXXRecordDecl *BaseDecl,
2160 void injectVFPtr(const CXXRecordDecl *RD);
2161 void injectVBPtr(const CXXRecordDecl *RD);
2170 void layoutVirtualBases(const CXXRecordDecl *RD);
2188 llvm::SmallPtrSet<const CXXRecordDecl *, 2>
2189 computeVtorDispSet(const CXXRecordDecl *RD);
2213 const CXXRecordDecl *PrimaryBase;
2215 const CXXRecordDecl *SharedVBPtrBase;
2307 void MicrosoftRecordLayoutBuilder::cxxLayout(const CXXRecordDecl *RD) { in cxxLayout()
2353 MicrosoftRecordLayoutBuilder::initializeCXXLayout(const CXXRecordDecl *RD) { in initializeCXXLayout()
2371 MicrosoftRecordLayoutBuilder::layoutNonVirtualBases(const CXXRecordDecl *RD) { in layoutNonVirtualBases()
2381 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in layoutNonVirtualBases()
2406 for (CXXRecordDecl::method_iterator i = RD->method_begin(), in layoutNonVirtualBases()
2417 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in layoutNonVirtualBases()
2444 const CXXRecordDecl *BaseDecl, in layoutNonVirtualBase()
2545 void MicrosoftRecordLayoutBuilder::injectVBPtr(const CXXRecordDecl *RD) { in injectVBPtr()
2571 void MicrosoftRecordLayoutBuilder::injectVFPtr(const CXXRecordDecl *RD) { in injectVFPtr()
2592 void MicrosoftRecordLayoutBuilder::layoutVirtualBases(const CXXRecordDecl *RD) { in layoutVirtualBases()
2605 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in layoutVirtualBases()
2612 llvm::SmallPtrSet<const CXXRecordDecl *, 2> HasVtordispSet = in layoutVirtualBases()
2617 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in layoutVirtualBases()
2661 const llvm::SmallPtrSet<const CXXRecordDecl *, 2> & in RequiresVtordisp() argument
2663 const CXXRecordDecl *RD) { in RequiresVtordisp()
2676 llvm::SmallPtrSet<const CXXRecordDecl *, 2>
2677 MicrosoftRecordLayoutBuilder::computeVtorDispSet(const CXXRecordDecl *RD) { in computeVtorDispSet()
2678 llvm::SmallPtrSet<const CXXRecordDecl *, 2> HasVtordispSet; in computeVtorDispSet()
2684 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in computeVtorDispSet()
2695 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in computeVtorDispSet()
2716 llvm::SmallPtrSet<const CXXRecordDecl *, 2> BasesWithOverriddenMethods; in computeVtorDispSet()
2736 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl(); in computeVtorDispSet()
2750 if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(D)) { in BuildMicrosoftASTRecordLayout()
2798 } else if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(D)) { in getASTRecordLayout()
2807 mustSkipTailPadding(getTargetInfo().getCXXABI(), cast<CXXRecordDecl>(D)); in getASTRecordLayout()
2856 const CXXMethodDecl *ASTContext::getCurrentKeyFunction(const CXXRecordDecl *RD) { in getCurrentKeyFunction()
2861 RD = cast<CXXRecordDecl>(RD->getDefinition()); in getCurrentKeyFunction()
2886 llvm::DenseMap<const CXXRecordDecl*, LazyDeclPtr>::iterator in setNonKeyFunction()
2982 const CXXRecordDecl *RD, const ASTContext &C, in DumpCXXRecordLayout()
2990 OS << C.getTypeDeclType(const_cast<CXXRecordDecl *>(RD)).getAsString(); in DumpCXXRecordLayout()
2999 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase(); in DumpCXXRecordLayout()
3014 SmallVector<const CXXRecordDecl *, 4> Bases; in DumpCXXRecordLayout()
3024 [&](const CXXRecordDecl *L, const CXXRecordDecl *R) { in DumpCXXRecordLayout()
3029 for (SmallVectorImpl<const CXXRecordDecl *>::iterator I = Bases.begin(), in DumpCXXRecordLayout()
3032 const CXXRecordDecl *Base = *I; in DumpCXXRecordLayout()
3047 for (CXXRecordDecl::field_iterator I = RD->field_begin(), in DumpCXXRecordLayout()
3053 if (const CXXRecordDecl *D = Field.getType()->getAsCXXRecordDecl()) { in DumpCXXRecordLayout()
3072 const CXXRecordDecl *VBase = I.getType()->getAsCXXRecordDecl(); in DumpCXXRecordLayout()
3103 if (const CXXRecordDecl *CXXRD = dyn_cast<CXXRecordDecl>(RD)) in DumpRecordLayout()