aboutsummaryrefslogtreecommitdiff
path: root/lib/Serialization/ASTWriterDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Serialization/ASTWriterDecl.cpp')
-rw-r--r--lib/Serialization/ASTWriterDecl.cpp43
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