DisableGVCompilation should not abort on internal GlobalValue's.
authorEvan Cheng <evan.cheng@apple.com>
Tue, 9 Dec 2008 07:31:49 +0000 (07:31 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 9 Dec 2008 07:31:49 +0000 (07:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60750 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ExecutionEngine/ExecutionEngine.h
lib/ExecutionEngine/JIT/JIT.cpp

index 1ee824177bb54d1dc91b8576e15f37e1d469fd54..327e9c6aa9290403ec6ff32b4b26b5bb0aa43ef9 100644 (file)
@@ -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;
   }
index 41b3ebcc6db8b2d0753fd3746268ad34afadfbfa..5d5ecc4fe7773fd6dfc352109f6b1c968e25e298 100644 (file)
@@ -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