diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-10-15 17:08:33 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-10-15 17:08:33 +0000 |
commit | 001fe64333f184251ea72aba8b3b8144e2a2b9df (patch) | |
tree | 391de84dfaa5949a547d46c32d325d59642948f7 /clang/lib/Sema/Sema.cpp | |
parent | 4e0854f23c9b084c4fbfd02e304c28c292588f1a (diff) | |
download | bcm5719-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.cpp | 3 |
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(); } |