diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-12-09 14:59:08 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-12-09 14:59:08 +0000 |
commit | c0ff7448d758fae2168bb0d09a5893d6a7aeb5ed (patch) | |
tree | dda3f298b9ac530bad7159c02e41fd651668dbef /clang/lib/CodeGen/ModuleBuilder.cpp | |
parent | c3cde36ead0f088c3948329ac0e6f493a9422a86 (diff) | |
download | bcm5719-llvm-c0ff7448d758fae2168bb0d09a5893d6a7aeb5ed.tar.gz bcm5719-llvm-c0ff7448d758fae2168bb0d09a5893d6a7aeb5ed.zip |
When we decide to output a deferred decl, remember the llvm GlobalValue.
We can reuse it to avoid a DenseMap+StringMap lookup to find if it was already
emitted or not.
This fixes a 2010 TODO.
llvm-svn: 196785
Diffstat (limited to 'clang/lib/CodeGen/ModuleBuilder.cpp')
-rw-r--r-- | clang/lib/CodeGen/ModuleBuilder.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp index bc7acbc39ca..6b81ce7fb09 100644 --- a/clang/lib/CodeGen/ModuleBuilder.cpp +++ b/clang/lib/CodeGen/ModuleBuilder.cpp @@ -117,6 +117,8 @@ namespace { virtual void HandleTranslationUnit(ASTContext &Ctx) { if (Diags.hasErrorOccurred()) { + if (Builder) + Builder->clear(); M.reset(); return; } |