/external/clang/lib/CodeGen/ |
CGVTables.h | 65 const CXXRecordDecl *RD, const VTableComponent *Components, 81 uint64_t getSubVTTIndex(const CXXRecordDecl *RD, BaseSubobject Base); 85 uint64_t getSecondaryVirtualPointerIndex(const CXXRecordDecl *RD, 90 uint64_t getAddressPoint(BaseSubobject Base, const CXXRecordDecl *RD); 95 GenerateConstructionVTable(const CXXRecordDecl *RD, const BaseSubobject &Base, 102 llvm::GlobalVariable *GetAddrOfVTT(const CXXRecordDecl *RD); 107 const CXXRecordDecl *RD); 116 void GenerateClassData(const CXXRecordDecl *RD); 118 bool isVTableExternal(const CXXRecordDecl *RD);
|
CGVTT.cpp | 44 const CXXRecordDecl *RD) { 45 VTTBuilder Builder(CGM.getContext(), RD, /*GenerateDefinition=*/true); 56 VTables.push_back(GetAddrOfVTTVTable(*this, CGM, RD, *i, Linkage, 66 if (VTTVT.getBase() == RD) { 69 getItaniumVTableContext().getVTableLayout(RD).getAddressPoint( 98 CGM.setGlobalVisibility(VTT, RD); 101 llvm::GlobalVariable *CodeGenVTables::GetAddrOfVTT(const CXXRecordDecl *RD) { 102 assert(RD->getNumVBases() && "Only classes with virtual bases need a VTT"); 107 .mangleCXXVTT(RD, Out); 112 (void) CGM.getCXXABI().getAddrOfVTable(RD, CharUnits()) [all...] |
CodeGenTypes.cpp | 48 void CodeGenTypes::addRecordTypeName(const RecordDecl *RD, 53 OS << RD->getKindName() << '.'; 57 if (RD->getIdentifier()) { 60 if (RD->getDeclContext()) 61 RD->printQualifiedName(OS); 63 RD->printName(OS); 64 } else if (const TypedefNameDecl *TDD = RD->getTypedefNameForAnonDecl()) { 114 isSafeToConvert(const RecordDecl *RD, CodeGenTypes &CGT, 118 if (!AlreadyChecked.insert(RD)) return true; 120 const Type *Key = CGT.getContext().getTagDeclType(RD).getTypePtr() [all...] |
CodeGenTBAA.cpp | 179 const RecordDecl *RD = TTy->getDecl()->getDefinition(); 180 if (RD->hasFlexibleArrayMember()) 184 if (const CXXRecordDecl *Decl = dyn_cast<CXXRecordDecl>(RD)) 188 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); 191 for (RecordDecl::field_iterator i = RD->field_begin(), 192 e = RD->field_end(); i != e; ++i, ++idx) { 230 const RecordDecl *RD = TTy->getDecl()->getDefinition(); 231 if (RD->hasFlexibleArrayMember()) 233 // RD can be struct, union, class, interface or enum. 235 if (RD->isStruct() || RD->isClass() [all...] |
MicrosoftCXXABI.cpp | 49 RecordArgABI getRecordArgABI(const CXXRecordDecl *RD) const override; 64 llvm::GlobalVariable *getMSCompleteObjectLocator(const CXXRecordDecl *RD, 100 const CXXRecordDecl *RD) override; 103 const CXXRecordDecl *RD) override; 194 const CXXRecordDecl *RD) override; 205 llvm::GlobalVariable *getAddrOfVTable(const CXXRecordDecl *RD, 225 void emitVirtualInheritanceTables(const CXXRecordDecl *RD) override; 228 getAddrOfVBTable(const VPtrInfo &VBT, const CXXRecordDecl *RD, 231 void emitVBTableDefinition(const VPtrInfo &VBT, const CXXRecordDecl *RD, 453 const CXXRecordDecl *RD, llvm::Value *Base [all...] |
CGCXXABI.cpp | 31 bool CGCXXABI::canCopyArgument(const CXXRecordDecl *RD) const { 32 // If RD has a non-trivial move or copy constructor, we cannot copy the 34 if (RD->hasNonTrivialCopyConstructor() || RD->hasNonTrivialMoveConstructor()) 37 // If RD has a non-trivial destructor, we cannot copy the argument. 38 if (RD->hasNonTrivialDestructor()) 47 for (const CXXConstructorDecl *CD : RD->ctors()) { 82 const CXXRecordDecl *RD = 85 CGM.getTypes().arrangeCXXMethodType(RD, FPT)); 288 const CXXRecordDecl *RD = cast<CXXRecordDecl>(MPD->getDeclContext()) [all...] |
CodeGenABITypes.cpp | 57 CodeGenABITypes::arrangeCXXMethodType(const CXXRecordDecl *RD, 59 return CGM->getTypes().arrangeCXXMethodType(RD, FTP);
|
CGCXX.cpp | 309 const CXXRecordDecl *RD) { 314 llvm::Value *VTable = CGM.getCXXABI().getAddrOfVTable(RD, CharUnits()); 320 CGM.getItaniumVTableContext().getVTableLayout(RD) 321 .getAddressPoint(BaseSubobject(RD, CharUnits::Zero())); 342 const auto *RD = cast<CXXRecordDecl>(RT->getDecl()); 345 return BuildAppleKextVirtualDestructorCall(DD, Dtor_Complete, RD); 347 return ::BuildAppleKextVirtualCall(*this, MD, Ty, RD); 356 const CXXRecordDecl *RD) { 366 return ::BuildAppleKextVirtualCall(*this, GlobalDecl(DD, Type), Ty, RD);
|
CGRecordLayout.h | 191 unsigned getNonVirtualBaseLLVMFieldNo(const CXXRecordDecl *RD) const { 192 assert(NonVirtualBases.count(RD) && "Invalid non-virtual base!"); 193 return NonVirtualBases.lookup(RD);
|
CGVTables.cpp | 435 const CXXRecordDecl *RD, const VTableComponent *Components, 549 CodeGenVTables::GenerateConstructionVTable(const CXXRecordDecl *RD, 559 Base.getBase(), Base.getBaseOffset(), BaseIsVirtual, RD)); 568 .mangleCXXCtorVTable(RD, Base.getBaseOffset().getQuantity(), 587 CGM.setGlobalVisibility(VTable, RD); 609 CodeGenModule::getVTableLinkage(const CXXRecordDecl *RD) { 610 if (!RD->isExternallyVisible()) 615 if (const CXXMethodDecl *keyFunction = Context.getCurrentKeyFunction(RD)) { 657 if (RD->hasAttr<DLLExportAttr>()) { 660 } else if (RD->hasAttr<DLLImportAttr>()) [all...] |
ModuleBuilder.cpp | 138 if (const RecordDecl *RD = dyn_cast<RecordDecl>(D)) 139 DI->completeRequiredType(RD); 161 void HandleVTable(CXXRecordDecl *RD, bool DefinitionRequired) override { 165 Builder->EmitVTable(RD, DefinitionRequired);
|
/external/clang/lib/AST/ |
RecordLayoutBuilder.cpp | 80 void AddSubobjectAtOffset(const CXXRecordDecl *RD, CharUnits Offset); 85 void UpdateEmptyFieldSubobjects(const CXXRecordDecl *RD, 106 bool CanPlaceSubobjectAtOffset(const CXXRecordDecl *RD, 112 bool CanPlaceFieldSubobjectAtOffset(const CXXRecordDecl *RD, 186 EmptySubobjectMap::CanPlaceSubobjectAtOffset(const CXXRecordDecl *RD, 189 if (!RD->isEmpty()) 197 if (std::find(Classes.begin(), Classes.end(), RD) == Classes.end()) 204 void EmptySubobjectMap::AddSubobjectAtOffset(const CXXRecordDecl *RD, 207 if (!RD->isEmpty()) 213 if (std::find(Classes.begin(), Classes.end(), RD) != Classes.end() [all...] |
MicrosoftCXXABI.cpp | 58 bool isNearlyEmpty(const CXXRecordDecl *RD) const override { 60 if (!RD->isDynamicClass()) 63 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); 81 static bool usesMultipleInheritanceModel(const CXXRecordDecl *RD) { 82 while (RD->getNumBases() > 0) { 83 if (RD->getNumBases() > 1) 85 assert(RD->getNumBases() == 1); 87 RD->bases_begin()->getType()->getAsCXXRecordDecl(); 88 if (RD->isPolymorphic() && !Base->isPolymorphic()) 90 RD = Base [all...] |
VTTBuilder.cpp | 57 const CXXRecordDecl *RD = Base.getBase(); 59 for (const auto &I : RD->bases()) { 67 const ASTRecordLayout &Layout = Ctx.getASTRecordLayout(RD); 82 const CXXRecordDecl *RD = Base.getBase(); 86 if (!RD->getNumVBases() && !BaseIsMorallyVirtual) 89 for (const auto &I : RD->bases()) { 114 const ASTRecordLayout &Layout = Ctx.getASTRecordLayout(RD); 151 void VTTBuilder::LayoutVirtualVTTs(const CXXRecordDecl *RD, 153 for (const auto &I : RD->bases()) { 177 const CXXRecordDecl *RD = Base.getBase() [all...] |
CXXABI.h | 40 virtual bool isNearlyEmpty(const CXXRecordDecl *RD) const = 0;
|
ItaniumCXXABI.cpp | 76 bool isNearlyEmpty(const CXXRecordDecl *RD) const override { 79 if (!RD->isDynamicClass()) 82 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
|
VTableBuilder.cpp | 330 const CXXRecordDecl *RD = Base.getBase(); 334 SubobjectNumber = ++SubobjectCounts[RD]; 337 assert(!SubobjectOffsets.count(std::make_pair(RD, SubobjectNumber)) 339 assert(!SubobjectLayoutClassOffsets.count(std::make_pair(RD, SubobjectNumber)) 342 SubobjectOffsets[std::make_pair(RD, SubobjectNumber)] = Base.getBaseOffset(); 343 SubobjectLayoutClassOffsets[std::make_pair(RD, SubobjectNumber)] = 347 for (const auto &B : RD->bases()) { 364 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); 380 const CXXRecordDecl *RD = Base.getBase(); 381 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); [all...] |
/external/clang/include/clang/AST/ |
VTableBuilder.h | 68 static VTableComponent MakeRTTI(const CXXRecordDecl *RD) { 69 return VTableComponent(CK_RTTI, reinterpret_cast<uintptr_t>(RD)); 286 virtual void computeVTableRelatedInformation(const CXXRecordDecl *RD) = 0; 332 void computeVTableRelatedInformation(const CXXRecordDecl *RD) override; 338 const VTableLayout &getVTableLayout(const CXXRecordDecl *RD) { 339 computeVTableRelatedInformation(RD); 340 assert(VTableLayouts.count(RD) && "No layout for this record decl!"); 342 return *VTableLayouts[RD]; 362 CharUnits getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, 376 VPtrInfo(const CXXRecordDecl *RD) [all...] |
ASTMutationListener.h | 50 virtual void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) {}
|
/external/llvm/lib/Target/PowerPC/ |
PPCJITInfo.cpp | 33 #define BUILD_ADDIS(RD,RS,IMM16) \ 34 ((15 << 26) | ((RD) << 21) | ((RS) << 16) | ((IMM16) & 65535)) 35 #define BUILD_ORI(RD,RS,UIMM16) \ 36 ((24 << 26) | ((RS) << 21) | ((RD) << 16) | ((UIMM16) & 65535)) 37 #define BUILD_ORIS(RD,RS,UIMM16) \ 38 ((25 << 26) | ((RS) << 21) | ((RD) << 16) | ((UIMM16) & 65535)) 39 #define BUILD_RLDICR(RD,RS,SH,ME) \ 40 ((30 << 26) | ((RS) << 21) | ((RD) << 16) | (((SH) & 31) << 11) | \ 50 #define BUILD_LIS(RD,IMM16) BUILD_ADDIS(RD,0,IMM16 [all...] |
/external/clang/lib/StaticAnalyzer/Checkers/ |
LLVMConventionsChecker.cpp | 67 static bool IsClangType(const RecordDecl *RD) { 68 return RD->getName() == "Type" && InNamespace(RD, "clang"); 71 static bool IsClangDecl(const RecordDecl *RD) { 72 return RD->getName() == "Decl" && InNamespace(RD, "clang"); 75 static bool IsClangStmt(const RecordDecl *RD) { 76 return RD->getName() == "Stmt" && InNamespace(RD, "clang"); 79 static bool IsClangAttr(const RecordDecl *RD) { [all...] |
CastSizeChecker.cpp | 55 const RecordDecl *RD = RT->getDecl(); 56 RecordDecl::field_iterator Iter(RD->field_begin()); 57 RecordDecl::field_iterator End(RD->field_end()); 72 } else if (RD->hasFlexibleArrayMember()) {
|
VirtualCallChecker.cpp | 214 void checkASTDecl(const CXXRecordDecl *RD, AnalysisManager& mgr, 216 WalkAST walker(this, BR, mgr.getAnalysisDeclContext(RD)); 219 for (const auto *I : RD->ctors()) { 228 if (CXXDestructorDecl *DD = RD->getDestructor())
|
/external/clang/include/clang/CodeGen/ |
CodeGenABITypes.h | 63 const CGFunctionInfo &arrangeCXXMethodType(const CXXRecordDecl *RD,
|
/external/lldb/include/lldb/Expression/ |
ASTStructExtractor.h | 102 void HandleVTable(clang::CXXRecordDecl *RD, bool DefinitionRequired);
|