diff options
author | Georgii Rymar <grimar@accesssoftek.com> | 2020-08-28 12:18:19 +0300 |
---|---|---|
committer | Georgii Rymar <grimar@accesssoftek.com> | 2020-09-01 16:46:17 +0300 |
commit | 3d90a61cf2edc22f1f006de351a1812592a7648b (patch) | |
tree | 1f0ff72dc6b8200f943e9b74f3fabd746f7a5b40 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | d48699e3e89f342ecb9dfc288f6840cd41ecb5e5 (diff) | |
download | llvm-3d90a61cf2edc22f1f006de351a1812592a7648b.zip llvm-3d90a61cf2edc22f1f006de351a1812592a7648b.tar.gz llvm-3d90a61cf2edc22f1f006de351a1812592a7648b.tar.bz2 |
[llvm-readobj] - Remove Error.cpp,.h and drop dependencies in the code.
We have Error.cpp/.h which contains some code for working with error codes.
In fact we use Error/Expected<> almost everywhere already and we can get rid
of these files.
Note: a few places in the code used readobj specific error codes,
e.g. `return readobj_error::unknown_symbol`. But these codes are never really used,
i.e. the code checks the fact of a success/error call only.
So I've changes them to `return inconvertibleErrorCode()` for now.
It seems that these places probably should be converted to use `Error`/`Expected<>`.
Differential revision: https://reviews.llvm.org/D86772
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 49fa0eb..a584929 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -19,7 +19,6 @@ //===----------------------------------------------------------------------===// #include "llvm-readobj.h" -#include "Error.h" #include "ObjDumper.h" #include "WindowsResourceDumper.h" #include "llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h" @@ -579,12 +578,16 @@ static void dumpArchive(const Archive *Arc, ScopedPrinter &Writer) { reportError(std::move(E), Arc->getFileName()); continue; } - if (ObjectFile *Obj = dyn_cast<ObjectFile>(&*ChildOrErr.get())) + + Binary *Bin = ChildOrErr->get(); + if (ObjectFile *Obj = dyn_cast<ObjectFile>(Bin)) dumpObject(*Obj, Writer, Arc); - else if (COFFImportFile *Imp = dyn_cast<COFFImportFile>(&*ChildOrErr.get())) + else if (COFFImportFile *Imp = dyn_cast<COFFImportFile>(Bin)) dumpCOFFImportFile(Imp, Writer); else - reportWarning(errorCodeToError(readobj_error::unrecognized_file_format), + reportWarning(createStringError(errc::invalid_argument, + Bin->getFileName() + + " has an unsupported file type"), Arc->getFileName()); } if (Err) @@ -634,8 +637,7 @@ static void dumpInput(StringRef File, ScopedPrinter &Writer) { else if (WindowsResource *WinRes = dyn_cast<WindowsResource>(&Binary)) dumpWindowsResourceFile(WinRes, Writer); else - reportError(errorCodeToError(readobj_error::unrecognized_file_format), - File); + llvm_unreachable("unrecognized file type"); CVTypes.Binaries.push_back(std::move(*BinaryOrErr)); } |