-// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
#include "llvm/Linker/Linker.h"
#include "rustllvm.h"
std::unique_ptr<MemoryBuffer> Buf =
MemoryBuffer::getMemBufferCopy(StringRef(BC, Len));
-#if LLVM_VERSION_GE(4, 0)
Expected<std::unique_ptr<Module>> SrcOrError =
llvm::getLazyBitcodeModule(Buf->getMemBufferRef(), L->Ctx);
if (!SrcOrError) {
}
auto Src = std::move(*SrcOrError);
-#else
- ErrorOr<std::unique_ptr<Module>> Src =
- llvm::getLazyBitcodeModule(std::move(Buf), L->Ctx);
- if (!Src) {
- LLVMRustSetLastError(Src.getError().message().c_str());
- return false;
- }
-#endif
-#if LLVM_VERSION_GE(4, 0)
if (L->L.linkInModule(std::move(Src))) {
-#else
- if (L->L.linkInModule(std::move(Src.get()))) {
-#endif
LLVMRustSetLastError("");
return false;
}