summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReaderDecl.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-06-20 01:05:19 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-06-20 01:05:19 +0000
commitbeb44788b36a3ab7db82d5ae4dd52d571d159bd6 (patch)
treecbee05726ddb1f96440905bc3eb1e44b501489cb /clang/lib/Serialization/ASTReaderDecl.cpp
parent7070827be1fc6bbc02e932c1768bcf70aa823f04 (diff)
downloadbcm5719-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.cpp3
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
OpenPOWER on IntegriCloud