summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTWriter.cpp
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2011-04-24 16:27:30 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2011-04-24 16:27:30 +0000
commit14afaf0093aaa4d3bd0ec9564ee241acc64ecbb6 (patch)
tree0ed169fdf65fd81a8b97ca5c3a1b76cc3891ad32 /clang/lib/Serialization/ASTWriter.cpp
parent5519ff9d4ee1db2b7a3072e7d3df04013a4e8f1a (diff)
downloadbcm5719-llvm-14afaf0093aaa4d3bd0ec9564ee241acc64ecbb6.tar.gz
bcm5719-llvm-14afaf0093aaa4d3bd0ec9564ee241acc64ecbb6.zip
Store the full list of pending instantiations in a chained PCH. Previously we attempted to store only new pending instantiations, but our filter was incorrect, dropping implicit instantiations of class template members. It's just not worth coming up with a complex filter that is correct, when the only cost is PCH files that are a few hundred bytes (at most) larger.
llvm-svn: 130098
Diffstat (limited to 'clang/lib/Serialization/ASTWriter.cpp')
-rw-r--r--clang/lib/Serialization/ASTWriter.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index 7196a727183..fb193651b87 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -3039,10 +3039,8 @@ void ASTWriter::WriteASTChain(Sema &SemaRef, MemorizeStatCalls *StatCalls,
for (std::deque<Sema::PendingImplicitInstantiation>::iterator
I = SemaRef.PendingInstantiations.begin(),
N = SemaRef.PendingInstantiations.end(); I != N; ++I) {
- if (I->first->getPCHLevel() == 0) {
- AddDeclRef(I->first, PendingInstantiations);
- AddSourceLocation(I->second, PendingInstantiations);
- }
+ AddDeclRef(I->first, PendingInstantiations);
+ AddSourceLocation(I->second, PendingInstantiations);
}
assert(SemaRef.PendingLocalImplicitInstantiations.empty() &&
"There are local ones at end of translation unit!");
OpenPOWER on IntegriCloud