diff options
-rw-r--r-- | include/llvm/ExecutionEngine/ExecutionEngine.h | 5 | ||||
-rw-r--r-- | lib/ExecutionEngine/JIT/JIT.cpp | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h index 1ee8241..327e9c6 100644 --- a/include/llvm/ExecutionEngine/ExecutionEngine.h +++ b/include/llvm/ExecutionEngine/ExecutionEngine.h @@ -263,8 +263,9 @@ public: return LazyCompilationDisabled; } - /// DisableGVCompilation - If called, the JIT will abort if it's asked to allocate - /// space and populate a GlobalVariable. + /// DisableGVCompilation - If called, the JIT will abort if it's asked to + /// allocate space and populate a GlobalVariable that is not internal to + /// the module. void DisableGVCompilation(bool Disabled = true) { GVCompilationDisabled = Disabled; } diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp index 41b3ebc..5d5ecc4 100644 --- a/lib/ExecutionEngine/JIT/JIT.cpp +++ b/lib/ExecutionEngine/JIT/JIT.cpp @@ -553,8 +553,8 @@ void *JIT::getOrEmitGlobalVariable(const GlobalVariable *GV) { addGlobalMapping(GV, Ptr); } } else { - if (isGVCompilationDisabled()) { - cerr << "Compilation of GlobalVariable is disabled!\n"; + if (isGVCompilationDisabled() && !GV->hasInternalLinkage()) { + cerr << "Compilation of non-internal GlobalValue is disabled!\n"; abort(); } // If the global hasn't been emitted to memory yet, allocate space and |