diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-06-20 01:05:19 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-06-20 01:05:19 +0000 |
commit | beb44788b36a3ab7db82d5ae4dd52d571d159bd6 (patch) | |
tree | cbee05726ddb1f96440905bc3eb1e44b501489cb /clang/lib/Serialization/ASTReaderDecl.cpp | |
parent | 7070827be1fc6bbc02e932c1768bcf70aa823f04 (diff) | |
download | bcm5719-llvm-beb44788b36a3ab7db82d5ae4dd52d571d159bd6.tar.gz bcm5719-llvm-beb44788b36a3ab7db82d5ae4dd52d571d159bd6.zip |
[modules] When determining whether a definition of a class is visible, check all modules even if we've already found a definition that's not visible.
llvm-svn: 240204
Diffstat (limited to 'clang/lib/Serialization/ASTReaderDecl.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTReaderDecl.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 2e13a9bde30..00ebd3ebe8e 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -3890,6 +3890,9 @@ void ASTDeclReader::UpdateDecl(Decl *D, ModuleFile &ModuleFile, case UPD_DECL_EXPORTED: unsigned SubmoduleID = readSubmoduleID(Record, Idx); + auto *Exported = cast<NamedDecl>(D); + if (auto *TD = dyn_cast<TagDecl>(Exported)) + Exported = TD->getDefinition(); Module *Owner = SubmoduleID ? Reader.getSubmodule(SubmoduleID) : nullptr; if (Reader.getContext().getLangOpts().ModulesLocalVisibility) { // FIXME: This doesn't send the right notifications if there are |