about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2015-01-30 19:25:07 +0100
committerBjörn Steinbrink <bsteinbr@gmail.com>2015-02-01 20:00:35 +0100
commit602e508db0fd3566ef59a6a4833b68c3a55ddc79 (patch)
tree6b36732e509b31b7c7b9d044d358da45f79ae2c0 /src/rustllvm/ExecutionEngineWrapper.cpp
parent682f867bbfff97e3aef55bdf228d279e45f25cd9 (diff)
downloadrust-602e508db0fd3566ef59a6a4833b68c3a55ddc79.tar.gz
rust-602e508db0fd3566ef59a6a4833b68c3a55ddc79.zip
Update LLVM to rust-llvm-2015-01-30
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());