Use object::Archive::create instead of new object::Archive.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 1 Aug 2014 18:31:17 +0000 (18:31 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 1 Aug 2014 18:31:17 +0000 (18:31 +0000)
Also fix the error handling. No testcaes, issue found by inspection.

Thanks to David Blaikie for the suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214535 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lli/lli.cpp

index f566bf7457d26c955f55a581b1a4c54ac0da261f..fda55e4b575649706d8e5bd610fd7b5292566b0b 100644 (file)
@@ -544,15 +544,14 @@ int main(int argc, char **argv, char * const *envp) {
       Err.print(argv[0], errs());
       return 1;
     }
-    std::error_code EC;
-    std::unique_ptr<object::Archive> Ar =
-        llvm::make_unique<object::Archive>(std::move(ArBuf.get()), EC);
-    assert(Ar);
-    if (EC) {
-      Err.print(argv[0], errs());
+
+    ErrorOr<std::unique_ptr<object::Archive>> ArOrErr =
+        object::Archive::create(std::move(ArBuf.get()));
+    if (std::error_code EC = ArOrErr.getError()) {
+      errs() << EC.message();
       return 1;
     }
-    EE->addArchive(std::move(Ar));
+    EE->addArchive(std::move(ArOrErr.get()));
   }
 
   // If the target is Cygwin/MingW and we are generating remote code, we