]> granicus.if.org Git - clang/commit
[modules] When collecting declarations to complete a redeclaration chain for an
authorRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 12 Feb 2015 23:21:45 +0000 (23:21 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 12 Feb 2015 23:21:45 +0000 (23:21 +0000)
commitd25dc45a79c019fd32a0db2b69d4dbc655b3b8ea
tree6ec76d0f2c94e63224cedc6f5043c5187de0acfd
parent635977ba69c62a0a1d82a8b8a00839f5b1c37841
[modules] When collecting declarations to complete a redeclaration chain for an
entity, put the originally-canonical decl IDs in the right places in the redecl
chain rather than reordering them all to the start. If we don't ensure that the
redecl chain order is consistent with the topological module order, we can fail
to make a declaration visible if later declarations are in more IDNSs than
earlier ones (for instance, because the earlier decls are invisible friends).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228978 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Serialization/ASTReaderDecl.cpp
test/Modules/Inputs/merge-decl-order/a.h [new file with mode: 0644]
test/Modules/Inputs/merge-decl-order/b.h [new file with mode: 0644]
test/Modules/Inputs/merge-decl-order/module.modulemap [new file with mode: 0644]
test/Modules/cxx-templates.cpp
test/Modules/merge-decl-order.cpp [new file with mode: 0644]