summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-10-15 17:08:33 +0000
committerReid Kleckner <reid@kleckner.net>2014-10-15 17:08:33 +0000
commit001fe64333f184251ea72aba8b3b8144e2a2b9df (patch)
tree391de84dfaa5949a547d46c32d325d59642948f7 /clang/lib/Sema/Sema.cpp
parent4e0854f23c9b084c4fbfd02e304c28c292588f1a (diff)
downloadbcm5719-llvm-001fe64333f184251ea72aba8b3b8144e2a2b9df.tar.gz
bcm5719-llvm-001fe64333f184251ea72aba8b3b8144e2a2b9df.zip
Fix late template parsing leak with incremental processing
Add a second late template parser callback meant to cleanup any resources allocated by late template parsing. Call it from the Sema::ActOnEndOfTranslationUnit method after all pending template instantiations have been completed. Teach Parser::ParseTopLevelDecl to install the cleanup callback when incremental processing is enabled so that Parser::TemplateIds can be freed. Patch by Brad King! llvm-svn: 219810
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
-rw-r--r--clang/lib/Sema/Sema.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp
index aae2008957e..70e4eaab8e3 100644
--- a/clang/lib/Sema/Sema.cpp
+++ b/clang/lib/Sema/Sema.cpp
@@ -672,6 +672,9 @@ void Sema::ActOnEndOfTranslationUnit() {
}
PerformPendingInstantiations();
+ if (LateTemplateParserCleanup)
+ LateTemplateParserCleanup(OpaqueParser);
+
CheckDelayedMemberExceptionSpecs();
}
OpenPOWER on IntegriCloud