summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2016-06-29 20:35:44 +0000
committerKevin Enderby <enderby@apple.com>2016-06-29 20:35:44 +0000
commit0b21d88fd31b4bfb6fdb7e2f1ed5f93639d5bd1c (patch)
tree08092bf45f2d4c264837718186cc82d766c88959 /tools
parentb76b4707be8f8a807efe8538534eee3ea0ba279c (diff)
Change Archive::create() from ErrorOr<...> to Expected<...> and update
its clients. This commit will break the next lld builds. I’ll be committing the matching change for lld next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/dsymutil/BinaryHolder.cpp4
-rw-r--r--tools/lli/lli.cpp10
-rw-r--r--tools/llvm-ar/llvm-ar.cpp7
3 files changed, 14 insertions, 7 deletions
diff --git a/tools/dsymutil/BinaryHolder.cpp b/tools/dsymutil/BinaryHolder.cpp
index 8f33657dd55..5b92bba1193 100644
--- a/tools/dsymutil/BinaryHolder.cpp
+++ b/tools/dsymutil/BinaryHolder.cpp
@@ -159,8 +159,8 @@ BinaryHolder::MapArchiveAndGetMemberBuffers(StringRef Filename,
for (auto MemRef : ArchiveBuffers) {
auto ErrOrArchive = object::Archive::create(MemRef);
- if (auto Err = ErrOrArchive.getError())
- return Err;
+ if (!ErrOrArchive)
+ return errorToErrorCode(ErrOrArchive.takeError());
CurrentArchives.push_back(std::move(*ErrOrArchive));
}
return GetArchiveMemberBuffers(Filename, Timestamp);
diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp
index 14e03fb5a93..92de5da4721 100644
--- a/tools/lli/lli.cpp
+++ b/tools/lli/lli.cpp
@@ -511,10 +511,14 @@ int main(int argc, char **argv, char * const *envp) {
}
std::unique_ptr<MemoryBuffer> &ArBuf = ArBufOrErr.get();
- ErrorOr<std::unique_ptr<object::Archive>> ArOrErr =
+ Expected<std::unique_ptr<object::Archive>> ArOrErr =
object::Archive::create(ArBuf->getMemBufferRef());
- if (std::error_code EC = ArOrErr.getError()) {
- errs() << EC.message();
+ if (!ArOrErr) {
+ std::string Buf;
+ raw_string_ostream OS(Buf);
+ logAllUnhandledErrors(ArOrErr.takeError(), OS, "");
+ OS.flush();
+ errs() << Buf;
return 1;
}
std::unique_ptr<object::Archive> &Ar = ArOrErr.get();
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index c8e241e2bf6..f918a3e5136 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -713,7 +713,9 @@ static int performOperation(ArchiveOperation Operation,
fail("error opening '" + ArchiveName + "': " + EC.message() + "!");
if (!EC) {
- object::Archive Archive(Buf.get()->getMemBufferRef(), EC);
+ Error Err;
+ object::Archive Archive(Buf.get()->getMemBufferRef(), Err);
+ EC = errorToErrorCode(std::move(Err));
failIfError(EC,
"error loading '" + ArchiveName + "': " + EC.message() + "!");
performOperation(Operation, &Archive, std::move(Buf.get()), NewMembers);
@@ -768,7 +770,8 @@ static void runMRIScript() {
ArchiveBuffers.push_back(std::move(*BufOrErr));
auto LibOrErr =
object::Archive::create(ArchiveBuffers.back()->getMemBufferRef());
- failIfError(LibOrErr.getError(), "Could not parse library");
+ failIfError(errorToErrorCode(LibOrErr.takeError()),
+ "Could not parse library");
Archives.push_back(std::move(*LibOrErr));
object::Archive &Lib = *Archives.back();
for (auto &MemberOrErr : Lib.children()) {