Serialize the AST reader's mapping from canonical declarations to the
set of (previously-canonical) declaration IDs to the module file, so that future AST reader instances that load the module know which declarations are merged. This is important in the fairly tricky case where a declaration of an entity, e.g., @class X; occurs before the import of a module that also declares that entity. We merge the declarations, and record the fact that the declaration of X loaded from the module was merged into the (now canonical) declaration of X that we parsed. llvm-svn: 147181
Showing
- clang/include/clang/Serialization/ASTBitCodes.h 4 additions, 1 deletionclang/include/clang/Serialization/ASTBitCodes.h
- clang/include/clang/Serialization/ASTReader.h 20 additions, 0 deletionsclang/include/clang/Serialization/ASTReader.h
- clang/include/clang/Serialization/ASTWriter.h 2 additions, 1 deletionclang/include/clang/Serialization/ASTWriter.h
- clang/lib/Serialization/ASTReader.cpp 10 additions, 0 deletionsclang/lib/Serialization/ASTReader.cpp
- clang/lib/Serialization/ASTReaderDecl.cpp 33 additions, 5 deletionsclang/lib/Serialization/ASTReaderDecl.cpp
- clang/lib/Serialization/ASTWriter.cpp 21 additions, 1 deletionclang/lib/Serialization/ASTWriter.cpp
- clang/test/Modules/Inputs/redecl-merge-bottom.h 2 additions, 0 deletionsclang/test/Modules/Inputs/redecl-merge-bottom.h
- clang/test/Modules/Inputs/redecl-merge-left.h 2 additions, 0 deletionsclang/test/Modules/Inputs/redecl-merge-left.h
- clang/test/Modules/redecl-merge.m 6 additions, 1 deletionclang/test/Modules/redecl-merge.m
Loading
Please register or sign in to comment