diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2020-07-26 20:11:30 +0300 | 
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2020-09-09 23:05:43 +0300 | 
| commit | 10d3f8a484a812db995198f17b17462718f477bc (patch) | |
| tree | 38e00f8edc46137de43f701c37a11006fd6b01ec /src/rustllvm/Linker.cpp | |
| parent | d92155bf6ae0b7d79fc83cbeeb0cc0c765353471 (diff) | |
| download | rust-10d3f8a484a812db995198f17b17462718f477bc.tar.gz rust-10d3f8a484a812db995198f17b17462718f477bc.zip  | |
Move `rustllvm` into `rustc_llvm`
Diffstat (limited to 'src/rustllvm/Linker.cpp')
| -rw-r--r-- | src/rustllvm/Linker.cpp | 48 | 
1 files changed, 0 insertions, 48 deletions
diff --git a/src/rustllvm/Linker.cpp b/src/rustllvm/Linker.cpp deleted file mode 100644 index 69176f9cb1f..00000000000 --- a/src/rustllvm/Linker.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include "llvm/Linker/Linker.h" - -#include "rustllvm.h" - -using namespace llvm; - -struct RustLinker { - Linker L; - LLVMContext &Ctx; - - RustLinker(Module &M) : - L(M), - Ctx(M.getContext()) - {} -}; - -extern "C" RustLinker* -LLVMRustLinkerNew(LLVMModuleRef DstRef) { - Module *Dst = unwrap(DstRef); - - return new RustLinker(*Dst); -} - -extern "C" void -LLVMRustLinkerFree(RustLinker *L) { - delete L; -} - -extern "C" bool -LLVMRustLinkerAdd(RustLinker *L, char *BC, size_t Len) { - std::unique_ptr<MemoryBuffer> Buf = - MemoryBuffer::getMemBufferCopy(StringRef(BC, Len)); - - Expected<std::unique_ptr<Module>> SrcOrError = - llvm::getLazyBitcodeModule(Buf->getMemBufferRef(), L->Ctx); - if (!SrcOrError) { - LLVMRustSetLastError(toString(SrcOrError.takeError()).c_str()); - return false; - } - - auto Src = std::move(*SrcOrError); - - if (L->L.linkInModule(std::move(Src))) { - LLVMRustSetLastError(""); - return false; - } - return true; -}  | 
