C++ modules: if a class is defined in multiple modules (for instance, because
it is an implicit instantiation of a class template specialization), pick the first-loaded definition to be the canonical definition, and merge all other definitions into it. This is still rather incomplete -- we need to extend every form of declaration that can appear within a CXXRecordDecl to be redeclarable if it came from an AST file (this includes fields, enumerators, ...). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190315 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/AST/DeclTemplate.h 1 addition, 1 deletioninclude/clang/AST/DeclTemplate.h
- include/clang/Serialization/ASTReader.h 5 additions, 0 deletionsinclude/clang/Serialization/ASTReader.h
- lib/Sema/SemaLookup.cpp 1 addition, 1 deletionlib/Sema/SemaLookup.cpp
- lib/Serialization/ASTReaderDecl.cpp 149 additions, 91 deletionslib/Serialization/ASTReaderDecl.cpp
- lib/Serialization/ASTWriterDecl.cpp 7 additions, 7 deletionslib/Serialization/ASTWriterDecl.cpp
- test/Modules/Inputs/cxx-templates-a.h 6 additions, 0 deletionstest/Modules/Inputs/cxx-templates-a.h
- test/Modules/Inputs/cxx-templates-b.h 6 additions, 0 deletionstest/Modules/Inputs/cxx-templates-b.h
- test/Modules/Inputs/templates-left.h 2 additions, 0 deletionstest/Modules/Inputs/templates-left.h
- test/Modules/Inputs/templates-right.h 2 additions, 0 deletionstest/Modules/Inputs/templates-right.h
- test/Modules/Inputs/templates-top.h 4 additions, 0 deletionstest/Modules/Inputs/templates-top.h
- test/Modules/cxx-templates.cpp 8 additions, 0 deletionstest/Modules/cxx-templates.cpp
- test/Modules/templates.mm 5 additions, 0 deletionstest/Modules/templates.mm
Loading
Please register or sign in to comment