summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-04-26 18:34:14 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-04-26 18:34:14 +0000
commit0334d3300d3f43e0b7988c16343279997ae3113f (patch)
tree1e440a76888e1c84926719feffb6a8d727244f00 /clang/lib/Serialization
parent3c79d88f06bdc79ec5b82cdfb415750af9ce3f7d (diff)
downloadbcm5719-llvm-0334d3300d3f43e0b7988c16343279997ae3113f.tar.gz
bcm5719-llvm-0334d3300d3f43e0b7988c16343279997ae3113f.zip
[PCH] In ASTReader::completeVisibleDeclsMap, after we loaded all visible decls, mark
the declaration context as not having external visible storage any more. This should improve performance as we won't needlessly reload the visible decls multiple times and seems to fix the i386 crash in rdar://11327522. llvm-svn: 155649
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index fd0c1713946..e0f996644be 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -5025,6 +5025,7 @@ void ASTReader::completeVisibleDeclsMap(const DeclContext *DC) {
I = Decls.begin(), E = Decls.end(); I != E; ++I) {
SetExternalVisibleDeclsForName(DC, I->first, I->second);
}
+ const_cast<DeclContext *>(DC)->setHasExternalVisibleStorage(false);
}
/// \brief Under non-PCH compilation the consumer receives the objc methods
OpenPOWER on IntegriCloud