aboutsummaryrefslogtreecommitdiff
path: root/src/rustllvm
diff options
context:
space:
mode:
Diffstat (limited to 'src/rustllvm')
-rw-r--r--src/rustllvm/RustWrapper.cpp8
-rw-r--r--src/rustllvm/rustllvm.def.in1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 01ea6677..3c958830 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -21,6 +21,7 @@
#include "llvm/Target/TargetRegistry.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm-c/Core.h"
+#include "llvm-c/BitReader.h"
#include "llvm-c/Object.h"
#include <cstdlib>
@@ -98,3 +99,10 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
(void)foo;
PM->run(*unwrap(M));
}
+
+extern "C" LLVMModuleRef LLVMRustParseBitcode(LLVMMemoryBufferRef MemBuf) {
+ LLVMModuleRef M;
+ return LLVMParseBitcode(MemBuf, &M, const_cast<char **>(&LLVMRustError))
+ ? NULL : M;
+}
+
diff --git a/src/rustllvm/rustllvm.def.in b/src/rustllvm/rustllvm.def.in
index 74acb28b..a5ffa04e 100644
--- a/src/rustllvm/rustllvm.def.in
+++ b/src/rustllvm/rustllvm.def.in
@@ -1,6 +1,7 @@
LLVMRustCreateMemoryBufferWithContentsOfFile
LLVMRustWriteOutputFile
LLVMRustGetLastError
+LLVMRustParseBitcode
LLVMLinkModules
LLVMCreateObjectFile
LLVMDisposeObjectFile