about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorValerii Hiora <valerii.hiora@gmail.com>2014-07-23 09:14:58 +0300
committerAlex Crichton <alex@alexcrichton.com>2014-07-24 07:25:55 -0700
commit57cade574418e9507c67ba5177bc177cc7771721 (patch)
tree0f722b8f431ebd1295087f82d69ff4872a928d64 /src/rustllvm/RustWrapper.cpp
parent4ea1dd54943bb208d585c7ae8138df5699995a77 (diff)
downloadrust-57cade574418e9507c67ba5177bc177cc7771721.tar.gz
rust-57cade574418e9507c67ba5177bc177cc7771721.zip
Updated LLVM for iOS
There should be no more problems during SjLj pass
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index a1a88d1b14d..a4437ea7c7b 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -658,13 +658,14 @@ LLVMRustLinkInExternalBitcode(LLVMModuleRef dst, char *bc, size_t len) {
 #if LLVM_VERSION_MINOR >= 5
 extern "C" void*
 LLVMRustOpenArchive(char *path) {
-    std::unique_ptr<MemoryBuffer> buf;
-    std::error_code err = MemoryBuffer::getFile(path, buf);
-    if (err) {
-        LLVMRustSetLastError(err.message().c_str());
+    ErrorOr<std::unique_ptr<MemoryBuffer>> buf_or = MemoryBuffer::getFile(path);
+    if (!buf_or) {
+        LLVMRustSetLastError(buf_or.getError().message().c_str());
         return NULL;
     }
-    Archive *ret = new Archive(buf.release(), err);
+
+    std::error_code err;
+    Archive *ret = new Archive(std::move(buf_or.get()), err);
     if (err) {
         LLVMRustSetLastError(err.message().c_str());
         return NULL;