diff options
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/dsymutil/BinaryHolder.cpp | 4 | ||||
-rw-r--r-- | llvm/tools/lli/lli.cpp | 4 | ||||
-rw-r--r-- | llvm/tools/llvm-cov/TestingSupport.cpp | 8 | ||||
-rw-r--r-- | llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp | 5 | ||||
-rw-r--r-- | llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp | 5 | ||||
-rw-r--r-- | llvm/tools/llvm-dwp/llvm-dwp.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 6 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/MachODump.cpp | 6 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 17 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.h | 1 | ||||
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 6 | ||||
-rw-r--r-- | llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp | 33 | ||||
-rw-r--r-- | llvm/tools/llvm-size/llvm-size.cpp | 6 | ||||
-rw-r--r-- | llvm/tools/obj2yaml/obj2yaml.cpp | 6 | ||||
-rw-r--r-- | llvm/tools/sancov/sancov.cc | 5 |
15 files changed, 77 insertions, 37 deletions
diff --git a/llvm/tools/dsymutil/BinaryHolder.cpp b/llvm/tools/dsymutil/BinaryHolder.cpp index 4c2c1d195c3..1f789e1628d 100644 --- a/llvm/tools/dsymutil/BinaryHolder.cpp +++ b/llvm/tools/dsymutil/BinaryHolder.cpp @@ -196,8 +196,8 @@ BinaryHolder::GetObjectFiles(StringRef Filename, sys::TimeValue Timestamp) { CurrentObjectFiles.clear(); for (auto MemBuf : *ErrOrMemBufferRefs) { auto ErrOrObjectFile = object::ObjectFile::createObjectFile(MemBuf); - if (auto Err = ErrOrObjectFile.getError()) - return Err; + if (!ErrOrObjectFile) + return errorToErrorCode(ErrOrObjectFile.takeError()); Objects.push_back(ErrOrObjectFile->get()); CurrentObjectFiles.push_back(std::move(*ErrOrObjectFile)); diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp index 78b4941ca00..9fa2e77f60f 100644 --- a/llvm/tools/lli/lli.cpp +++ b/llvm/tools/lli/lli.cpp @@ -501,9 +501,11 @@ int main(int argc, char **argv, char * const *envp) { } for (unsigned i = 0, e = ExtraObjects.size(); i != e; ++i) { - ErrorOr<object::OwningBinary<object::ObjectFile>> Obj = + Expected<object::OwningBinary<object::ObjectFile>> Obj = object::ObjectFile::createObjectFile(ExtraObjects[i]); if (!Obj) { + // TODO: Actually report errors helpfully. + consumeError(Obj.takeError()); Err.print(argv[0], errs()); return 1; } diff --git a/llvm/tools/llvm-cov/TestingSupport.cpp b/llvm/tools/llvm-cov/TestingSupport.cpp index 6959897482c..f6c91f85c84 100644 --- a/llvm/tools/llvm-cov/TestingSupport.cpp +++ b/llvm/tools/llvm-cov/TestingSupport.cpp @@ -36,8 +36,12 @@ int convertForTestingMain(int argc, const char *argv[]) { cl::ParseCommandLineOptions(argc, argv, "LLVM code coverage tool\n"); auto ObjErr = llvm::object::ObjectFile::createObjectFile(InputSourceFile); - if (auto Err = ObjErr.getError()) { - errs() << "error: " << Err.message() << "\n"; + if (!ObjErr) { + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(ObjErr.takeError(), OS, ""); + OS.flush(); + errs() << "error: " << Buf; return 1; } ObjectFile *OF = ObjErr.get().getBinary(); diff --git a/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp b/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp index 3dda69266a2..5048987865f 100644 --- a/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp +++ b/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp @@ -502,8 +502,9 @@ static void dumpArchive(const Archive *Arc) { static void dumpInput(StringRef File) { // Attempt to open the binary. - ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(File); - if (std::error_code EC = BinaryOrErr.getError()) { + Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(File); + if (!BinaryOrErr) { + auto EC = errorToErrorCode(BinaryOrErr.takeError()); reportError(File, EC); return; } diff --git a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp index eaacc7c5f21..e4f40377f97 100644 --- a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp +++ b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp @@ -96,9 +96,10 @@ static void DumpInput(StringRef Filename) { error(Filename, BuffOrErr.getError()); std::unique_ptr<MemoryBuffer> Buff = std::move(BuffOrErr.get()); - ErrorOr<std::unique_ptr<Binary>> BinOrErr = + Expected<std::unique_ptr<Binary>> BinOrErr = object::createBinary(Buff->getMemBufferRef()); - error(Filename, BinOrErr.getError()); + if (!BinOrErr) + error(Filename, errorToErrorCode(BinOrErr.takeError())); if (auto *Obj = dyn_cast<ObjectFile>(BinOrErr->get())) DumpObjectFile(*Obj, Filename); diff --git a/llvm/tools/llvm-dwp/llvm-dwp.cpp b/llvm/tools/llvm-dwp/llvm-dwp.cpp index bd836102a74..de19eb9e24b 100644 --- a/llvm/tools/llvm-dwp/llvm-dwp.cpp +++ b/llvm/tools/llvm-dwp/llvm-dwp.cpp @@ -393,7 +393,7 @@ static std::error_code write(MCStreamer &Out, ArrayRef<std::string> Inputs) { for (const auto &Input : Inputs) { auto ErrOrObj = object::ObjectFile::createObjectFile(Input); if (!ErrOrObj) - return ErrOrObj.getError(); + return errorToErrorCode(ErrOrObj.takeError()); UnitIndexEntry CurEntry = {}; diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 241ee8fb40f..845c49c4c75 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -1021,10 +1021,12 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { return; LLVMContext &Context = getGlobalContext(); - ErrorOr<std::unique_ptr<Binary>> BinaryOrErr = createBinary( + Expected<std::unique_ptr<Binary>> BinaryOrErr = createBinary( BufferOrErr.get()->getMemBufferRef(), NoLLVMBitcode ? nullptr : &Context); - if (error(BinaryOrErr.getError(), Filename)) + if (!BinaryOrErr) { + error(errorToErrorCode(BinaryOrErr.takeError()), Filename); return; + } Binary &Bin = *BinaryOrErr.get(); if (Archive *A = dyn_cast<Archive>(&Bin)) { diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 000ee3ff0d2..ffa0ff05068 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -1497,9 +1497,9 @@ void llvm::ParseInputMachO(StringRef Filename) { } // Attempt to open the binary. - ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(Filename); - if (std::error_code EC = BinaryOrErr.getError()) - report_error(Filename, EC); + Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(Filename); + if (!BinaryOrErr) + report_error(Filename, BinaryOrErr.takeError()); Binary &Bin = *BinaryOrErr.get().getBinary(); if (Archive *A = dyn_cast<Archive>(&Bin)) { diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 28d667a486e..38de13be6fc 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -270,6 +270,17 @@ LLVM_ATTRIBUTE_NORETURN void llvm::report_error(StringRef File, exit(1); } +LLVM_ATTRIBUTE_NORETURN void llvm::report_error(StringRef File, + llvm::Error E) { + assert(E); + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(std::move(E), OS, ""); + OS.flush(); + errs() << ToolName << ": " << Buf; + exit(1); +} + static const Target *getTarget(const ObjectFile *Obj = nullptr) { // Figure out the target triple. llvm::Triple TheTriple("unknown-unknown-unknown"); @@ -1611,9 +1622,9 @@ static void DumpInput(StringRef file) { } // Attempt to open the binary. - ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(file); - if (std::error_code EC = BinaryOrErr.getError()) - report_error(file, EC); + Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(file); + if (!BinaryOrErr) + report_error(file, errorToErrorCode(BinaryOrErr.takeError())); Binary &Binary = *BinaryOrErr.get().getBinary(); if (Archive *a = dyn_cast<Archive>(&Binary)) diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h index c50caae5b58..990e8a1ac4a 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.h +++ b/llvm/tools/llvm-objdump/llvm-objdump.h @@ -85,6 +85,7 @@ void PrintSectionHeaders(const object::ObjectFile *o); void PrintSectionContents(const object::ObjectFile *o); void PrintSymbolTable(const object::ObjectFile *o); LLVM_ATTRIBUTE_NORETURN void report_error(StringRef File, std::error_code EC); +LLVM_ATTRIBUTE_NORETURN void report_error(StringRef File, llvm::Error E); } // end namespace llvm diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 120d6c2e172..96486377ea8 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -429,9 +429,9 @@ static void dumpMachOUniversalBinary(const MachOUniversalBinary *UBinary) { static void dumpInput(StringRef File) { // Attempt to open the binary. - ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(File); - if (std::error_code EC = BinaryOrErr.getError()) - reportError(File, EC); + Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(File); + if (!BinaryOrErr) + reportError(File, errorToErrorCode(BinaryOrErr.takeError())); Binary &Binary = *BinaryOrErr.get().getBinary(); if (Archive *Arc = dyn_cast<Archive>(&Binary)) diff --git a/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp b/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp index a20ffaec65a..6c0c738b59f 100644 --- a/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp +++ b/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp @@ -292,11 +292,16 @@ static int printLineInfoForInput(bool LoadObjects, bool UseDebugObj) { if (std::error_code EC = InputBuffer.getError()) ErrorAndExit("unable to read input: '" + EC.message() + "'"); - ErrorOr<std::unique_ptr<ObjectFile>> MaybeObj( + Expected<std::unique_ptr<ObjectFile>> MaybeObj( ObjectFile::createObjectFile((*InputBuffer)->getMemBufferRef())); - if (std::error_code EC = MaybeObj.getError()) - ErrorAndExit("unable to create object file: '" + EC.message() + "'"); + if (!MaybeObj) { + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(MaybeObj.takeError(), OS, ""); + OS.flush(); + ErrorAndExit("unable to create object file: '" + Buf + "'"); + } ObjectFile &Obj = **MaybeObj; @@ -401,11 +406,16 @@ static int executeInput() { MemoryBuffer::getFileOrSTDIN(File); if (std::error_code EC = InputBuffer.getError()) ErrorAndExit("unable to read input: '" + EC.message() + "'"); - ErrorOr<std::unique_ptr<ObjectFile>> MaybeObj( + Expected<std::unique_ptr<ObjectFile>> MaybeObj( ObjectFile::createObjectFile((*InputBuffer)->getMemBufferRef())); - if (std::error_code EC = MaybeObj.getError()) - ErrorAndExit("unable to create object file: '" + EC.message() + "'"); + if (!MaybeObj) { + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(MaybeObj.takeError(), OS, ""); + OS.flush(); + ErrorAndExit("unable to create object file: '" + Buf + "'"); + } ObjectFile &Obj = **MaybeObj; @@ -665,11 +675,16 @@ static int linkAndVerify() { if (std::error_code EC = InputBuffer.getError()) ErrorAndExit("unable to read input: '" + EC.message() + "'"); - ErrorOr<std::unique_ptr<ObjectFile>> MaybeObj( + Expected<std::unique_ptr<ObjectFile>> MaybeObj( ObjectFile::createObjectFile((*InputBuffer)->getMemBufferRef())); - if (std::error_code EC = MaybeObj.getError()) - ErrorAndExit("unable to create object file: '" + EC.message() + "'"); + if (!MaybeObj) { + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(MaybeObj.takeError(), OS, ""); + OS.flush(); + ErrorAndExit("unable to create object file: '" + Buf + "'"); + } ObjectFile &Obj = **MaybeObj; diff --git a/llvm/tools/llvm-size/llvm-size.cpp b/llvm/tools/llvm-size/llvm-size.cpp index f386a244885..83e75d3039e 100644 --- a/llvm/tools/llvm-size/llvm-size.cpp +++ b/llvm/tools/llvm-size/llvm-size.cpp @@ -463,9 +463,11 @@ static bool checkMachOAndArchFlags(ObjectFile *o, StringRef file) { static void printFileSectionSizes(StringRef file) { // Attempt to open the binary. - ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(file); - if (error(BinaryOrErr.getError())) + Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(file); + if (!BinaryOrErr) { + error(errorToErrorCode(BinaryOrErr.takeError())); return; + } Binary &Bin = *BinaryOrErr.get().getBinary(); if (Archive *a = dyn_cast<Archive>(&Bin)) { diff --git a/llvm/tools/obj2yaml/obj2yaml.cpp b/llvm/tools/obj2yaml/obj2yaml.cpp index ee6284da6e4..8c4e1f814c4 100644 --- a/llvm/tools/obj2yaml/obj2yaml.cpp +++ b/llvm/tools/obj2yaml/obj2yaml.cpp @@ -29,9 +29,9 @@ static std::error_code dumpObject(const ObjectFile &Obj) { } static std::error_code dumpInput(StringRef File) { - ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(File); - if (std::error_code EC = BinaryOrErr.getError()) - return EC; + Expected<OwningBinary<Binary>> BinaryOrErr = createBinary(File); + if (!BinaryOrErr) + return errorToErrorCode(BinaryOrErr.takeError()); Binary &Binary = *BinaryOrErr.get().getBinary(); // TODO: If this is an archive, then burst it and dump each entry diff --git a/llvm/tools/sancov/sancov.cc b/llvm/tools/sancov/sancov.cc index 0baaae16cfe..bf6762e29a0 100644 --- a/llvm/tools/sancov/sancov.cc +++ b/llvm/tools/sancov/sancov.cc @@ -422,9 +422,10 @@ visitObjectFiles(const object::Archive &A, static void visitObjectFiles(std::string FileName, std::function<void(const object::ObjectFile &)> Fn) { - ErrorOr<object::OwningBinary<object::Binary>> BinaryOrErr = + Expected<object::OwningBinary<object::Binary>> BinaryOrErr = object::createBinary(FileName); - FailIfError(BinaryOrErr); + if (!BinaryOrErr) + FailIfError(errorToErrorCode(BinaryOrErr.takeError())); object::Binary &Binary = *BinaryOrErr.get().getBinary(); if (object::Archive *A = dyn_cast<object::Archive>(&Binary)) |