diff options
Diffstat (limited to 'lib/Serialization/ASTWriterDecl.cpp')
-rw-r--r-- | lib/Serialization/ASTWriterDecl.cpp | 43 |
1 files changed, 2 insertions, 41 deletions
diff --git a/lib/Serialization/ASTWriterDecl.cpp b/lib/Serialization/ASTWriterDecl.cpp index 4463ce931b..4e479b33de 100644 --- a/lib/Serialization/ASTWriterDecl.cpp +++ b/lib/Serialization/ASTWriterDecl.cpp @@ -34,7 +34,6 @@ namespace clang { typedef ASTWriter::RecordData RecordData; RecordData &Record; - void WriteCXXDefinitionData(struct CXXRecordDecl::DefinitionData &Data); public: serialization::DeclCode Code; unsigned AbbrevToUse; @@ -721,42 +720,6 @@ void ASTDeclWriter::VisitUnresolvedUsingTypenameDecl( Code = serialization::DECL_UNRESOLVED_USING_TYPENAME; } -void ASTDeclWriter::WriteCXXDefinitionData( - struct CXXRecordDecl::DefinitionData &Data) { - Record.push_back(Data.UserDeclaredConstructor); - Record.push_back(Data.UserDeclaredCopyConstructor); - Record.push_back(Data.UserDeclaredCopyAssignment); - Record.push_back(Data.UserDeclaredDestructor); - Record.push_back(Data.Aggregate); - Record.push_back(Data.PlainOldData); - Record.push_back(Data.Empty); - Record.push_back(Data.Polymorphic); - Record.push_back(Data.Abstract); - Record.push_back(Data.HasTrivialConstructor); - Record.push_back(Data.HasTrivialCopyConstructor); - Record.push_back(Data.HasTrivialCopyAssignment); - Record.push_back(Data.HasTrivialDestructor); - Record.push_back(Data.ComputedVisibleConversions); - Record.push_back(Data.DeclaredDefaultConstructor); - Record.push_back(Data.DeclaredCopyConstructor); - Record.push_back(Data.DeclaredCopyAssignment); - Record.push_back(Data.DeclaredDestructor); - - Record.push_back(Data.NumBases); - for (unsigned i = 0; i != Data.NumBases; ++i) - Writer.AddCXXBaseSpecifier(Data.Bases[i], Record); - - // FIXME: Make VBases lazily computed when needed to avoid storing them. - Record.push_back(Data.NumVBases); - for (unsigned i = 0; i != Data.NumVBases; ++i) - Writer.AddCXXBaseSpecifier(Data.VBases[i], Record); - - Writer.AddUnresolvedSet(Data.Conversions, Record); - Writer.AddUnresolvedSet(Data.VisibleConversions, Record); - // Data.Definition is the owning decl, no need to write it. - Writer.AddDeclRef(Data.FirstFriend, Record); -} - void ASTDeclWriter::VisitCXXRecordDecl(CXXRecordDecl *D) { VisitRecordDecl(D); @@ -764,10 +727,8 @@ void ASTDeclWriter::VisitCXXRecordDecl(CXXRecordDecl *D) { if (D->DefinitionData) DefinitionDecl = D->DefinitionData->Definition; Writer.AddDeclRef(DefinitionDecl, Record); - if (D == DefinitionDecl) { - assert(D->DefinitionData); - WriteCXXDefinitionData(*D->DefinitionData); - } + if (D == DefinitionDecl) + Writer.AddCXXDefinitionData(D, Record); enum { CXXRecNotTemplate = 0, CXXRecTemplate, CXXRecMemberSpecialization |