about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-02-03 03:44:05 +0000
committerbors <bors@rust-lang.org>2015-02-03 03:44:05 +0000
commit7858cb432d3f2efc0374424cb2b51518f697c172 (patch)
treebccd460a861e61f758d2d459cb9da02b1ad8792b /src/rustllvm/ExecutionEngineWrapper.cpp
parenteaf4c5c784637f3df8bdebc6ec21dbd4bc69420a (diff)
parent9ece22ee00033cdf0b6b418c451112c92c8ad922 (diff)
downloadrust-7858cb432d3f2efc0374424cb2b51518f697c172.tar.gz
rust-7858cb432d3f2efc0374424cb2b51518f697c172.zip
Auto merge of #21872 - alexcrichton:rollup, r=alexcrichton
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
-rw-r--r--src/rustllvm/ExecutionEngineWrapper.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/rustllvm/ExecutionEngineWrapper.cpp b/src/rustllvm/ExecutionEngineWrapper.cpp
index d37cf9d12a5..8ca81ab3d68 100644
--- a/src/rustllvm/ExecutionEngineWrapper.cpp
+++ b/src/rustllvm/ExecutionEngineWrapper.cpp
@@ -82,21 +82,24 @@ extern "C" LLVMExecutionEngineRef LLVMBuildExecutionEngine(
     InitializeNativeTargetAsmPrinter();
     InitializeNativeTargetAsmParser();
 
-    std::unique_ptr<Module> m(unwrap(mod));
-    RustJITMemoryManager *mm = unwrap(mref);
-
     std::string error_str;
     TargetOptions options;
 
     options.JITEmitDebugInfo = true;
     options.NoFramePointerElim = true;
 
-    ExecutionEngine *ee = EngineBuilder(std::move(m))
-        .setEngineKind(EngineKind::JIT)
-        .setErrorStr(&error_str)
-        .setMCJITMemoryManager(mm)
-        .setTargetOptions(options)
-        .create();
+    ExecutionEngine *ee =
+    #if LLVM_VERSION_MINOR <= 5
+        EngineBuilder(unwrap(mod))
+            .setMCJITMemoryManager(unwrap(mref))
+    #else
+        EngineBuilder(std::unique_ptr<Module>(unwrap(mod)))
+            .setMCJITMemoryManager(std::unique_ptr<RustJITMemoryManager>(unwrap(mref)))
+    #endif
+            .setEngineKind(EngineKind::JIT)
+            .setErrorStr(&error_str)
+            .setTargetOptions(options)
+            .create();
 
     if (!ee)
         LLVMRustSetLastError(error_str.c_str());