]> granicus.if.org Git - clang/commitdiff
[PCH] In ASTReader::completeVisibleDeclsMap, after we loaded all visible decls, mark
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 26 Apr 2012 18:34:14 +0000 (18:34 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Thu, 26 Apr 2012 18:34:14 +0000 (18:34 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155649 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Serialization/ASTReader.cpp

index fd0c17139468bda4c2bf4aeecef8a8707746e7f4..e0f996644be00ab0b13979b95c9354afd53df3ec 100644 (file)
@@ -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