diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-12-09 07:31:49 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-12-09 07:31:49 +0000 |
commit | 77f86ad08775e0ed2a704ef09ffff3dbd6e04583 (patch) | |
tree | 311f9c974840c1a12bf32f458bcbd5c40acde0c8 | |
parent | 1cd46bbb1c6b1c3cb33bbbd3beb97f0c0373df80 (diff) |
DisableGVCompilation should not abort on internal GlobalValue's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60750 91177308-0d34-0410-b5e6-96231b3b80d8
-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 1ee824177b..327e9c6aa9 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 41b3ebcc6d..5d5ecc4fe7 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 |