about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-05-05 11:34:15 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-05-05 11:34:45 -0700
commit5fb6e6364b6b10e98430140554e644697f29eb06 (patch)
tree3332fcffda123b9c9d02f94d337597cef2b3a610 /src/rustllvm/RustWrapper.cpp
parent6b742aec91f1c2615ab8e01ba027dfff3008a7f7 (diff)
downloadrust-5fb6e6364b6b10e98430140554e644697f29eb06.tar.gz
rust-5fb6e6364b6b10e98430140554e644697f29eb06.zip
rustc: Add a binding to LLVM's bitcode parser
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 01ea6677be1..3c9588305f1 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;
+}
+