diff options
Diffstat (limited to 'clang/lib/Serialization/ASTWriterDecl.cpp')
| -rw-r--r-- | clang/lib/Serialization/ASTWriterDecl.cpp | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index f7bb23764da..27adb26d713 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -72,6 +72,7 @@ namespace clang {      void VisitCXXDestructorDecl(CXXDestructorDecl *D);      void VisitCXXConversionDecl(CXXConversionDecl *D);      void VisitFieldDecl(FieldDecl *D); +    void VisitIndirectFieldDecl(IndirectFieldDecl *D);      void VisitVarDecl(VarDecl *D);      void VisitImplicitParamDecl(ImplicitParamDecl *D);      void VisitParmVarDecl(ParmVarDecl *D); @@ -528,6 +529,17 @@ void ASTDeclWriter::VisitFieldDecl(FieldDecl *D) {    Code = serialization::DECL_FIELD;  } +void ASTDeclWriter::VisitIndirectFieldDecl(IndirectFieldDecl *D) { +  VisitValueDecl(D); +  Record.push_back(D->getChainingSize()); + +  for (IndirectFieldDecl::chain_iterator +       P = D->chain_begin(), +       PEnd = D->chain_end(); P != PEnd; ++P) +    Writer.AddDeclRef(*P, Record); +  Code = serialization::DECL_INDIRECTFIELD; +} +  void ASTDeclWriter::VisitVarDecl(VarDecl *D) {    VisitDeclaratorDecl(D);    VisitRedeclarable(D); | 

