Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:RD

47 void CodeGenTypes::addRecordTypeName(const RecordDecl *RD,
52 OS << RD->getKindName() << '.';
56 if (RD->getIdentifier()) {
59 if (RD->getDeclContext())
60 RD->printQualifiedName(OS);
62 RD->printName(OS);
63 } else if (const TypedefNameDecl *TDD = RD->getTypedefNameForAnonDecl()) {
113 isSafeToConvert(const RecordDecl *RD, CodeGenTypes &CGT,
117 if (!AlreadyChecked.insert(RD).second)
120 const Type *Key = CGT.getContext().getTagDeclType(RD).getTypePtr();
133 if (const CXXRecordDecl *CRD = dyn_cast<CXXRecordDecl>(RD)) {
142 for (const auto *I : RD->fields())
178 static bool isSafeToConvert(const RecordDecl *RD, CodeGenTypes &CGT) {
183 return isSafeToConvert(RD, CGT, AlreadyChecked);
261 const RecordDecl *RD = cast<RecordDecl>(TD);
262 if (RD->isDependentType()) return;
266 if (RecordDeclTypes.count(Context.getTagDeclType(RD).getTypePtr()))
267 ConvertRecordDeclType(RD);
272 DI->completeType(RD);
275 void CodeGenTypes::RefreshTypeCacheForClass(const CXXRecordDecl *RD) {
276 QualType T = Context.getRecordType(RD);
658 llvm::StructType *CodeGenTypes::ConvertRecordDeclType(const RecordDecl *RD) {
661 const Type *Key = Context.getTagDeclType(RD).getTypePtr();
668 addRecordTypeName(RD, Entry, "");
674 RD = RD->getDefinition();
675 if (!RD || !RD->isCompleteDefinition() || !Ty->isOpaque())
679 if (!isSafeToConvert(RD, *this)) {
680 DeferredRecords.push_back(RD);
690 if (const CXXRecordDecl *CRD = dyn_cast<CXXRecordDecl>(RD)) {
699 CGRecordLayout *Layout = ComputeRecordLayout(RD, Ty);
723 CodeGenTypes::getCGRecordLayout(const RecordDecl *RD) {
724 const Type *Key = Context.getTagDeclType(RD).getTypePtr();
729 ConvertRecordDeclType(RD);
756 const CXXRecordDecl *RD = cast<CXXRecordDecl>(RT->getDecl());
757 return isZeroInitializable(RD);
768 bool CodeGenTypes::isZeroInitializable(const RecordDecl *RD) {
769 return getCGRecordLayout(RD).isZeroInitializable();