diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2015-03-18 04:13:55 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2015-03-18 04:13:55 +0000 |
commit | 91797559acb50c46c77aa200253caefc6acdd11c (patch) | |
tree | 22dbda14214e64141e3ff1f658a192e053434bd1 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 4deaac780c9e84aeb46fa9d4ce75870d95f6e436 (diff) | |
download | bcm5719-llvm-91797559acb50c46c77aa200253caefc6acdd11c.tar.gz bcm5719-llvm-91797559acb50c46c77aa200253caefc6acdd11c.zip |
[OPENMP] Fix crash on code emitting if errors are found.
Codegen for threadprivate variables (and in some other cases) may cause crash of the compiler if some diagnostic is produced later. This happens because some of the autogenerated globals are not removed from InternalVars StringMap when llvm::Module is reset.
Differential Revision: http://reviews.llvm.org/D8360
llvm-svn: 232610
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index c91de6df9e9..b25f315709e 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -323,6 +323,8 @@ void CodeGenModule::checkAliases() { void CodeGenModule::clear() { DeferredDeclsToEmit.clear(); + if (OpenMPRuntime) + OpenMPRuntime->clear(); } void InstrProfStats::reportDiagnostics(DiagnosticsEngine &Diags, |