aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-12-09 07:31:49 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-12-09 07:31:49 +0000
commit77f86ad08775e0ed2a704ef09ffff3dbd6e04583 (patch)
tree311f9c974840c1a12bf32f458bcbd5c40acde0c8
parent1cd46bbb1c6b1c3cb33bbbd3beb97f0c0373df80 (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.h5
-rw-r--r--lib/ExecutionEngine/JIT/JIT.cpp4
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