From 9693d28da8758de36adcf95614447f8ee3943ab1 Mon Sep 17 00:00:00 2001 From: George Rimar Date: Fri, 9 Aug 2019 08:29:26 +0000 Subject: [PATCH] [llvm-readobj] - Remove unwrapOrError(ErrorOr EO) helper. It is outdated. Using of Expected<> is preferred, also it does not provide a way to report a file name. I updated the code to use the modern version of unwrapOrError instead. Differential revision: https://reviews.llvm.org/D65951 llvm-svn: 368410 --- llvm/tools/llvm-readobj/COFFDumper.cpp | 16 +++++++++++----- llvm/tools/llvm-readobj/llvm-readobj.h | 6 ------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp index 4c2e39dfa3cc..3f61edcb97c8 100644 --- a/llvm/tools/llvm-readobj/COFFDumper.cpp +++ b/llvm/tools/llvm-readobj/COFFDumper.cpp @@ -60,6 +60,10 @@ using namespace llvm::codeview; using namespace llvm::support; using namespace llvm::Win64EH; +static inline Error createError(const Twine &Err) { + return make_error(Err, object_error::parse_failed); +} + namespace { struct LoadConfigTables { @@ -167,7 +171,7 @@ private: void printDelayImportedSymbols( const DelayImportDirectoryEntryRef &I, iterator_range Range); - ErrorOr + Expected getResourceDirectoryTableEntry(const coff_resource_dir_table &Table, uint32_t Index); @@ -1729,7 +1733,8 @@ COFFDumper::countTotalTableEntries(ResourceSectionRef RSF, uint32_t TotalEntries = 0; for (int i = 0; i < Table.NumberOfNameEntries + Table.NumberOfIDEntries; i++) { - auto Entry = unwrapOrError(getResourceDirectoryTableEntry(Table, i)); + auto Entry = unwrapOrError(Obj->getFileName(), + getResourceDirectoryTableEntry(Table, i)); if (Entry.Offset.isSubDir()) { StringRef NextLevel; if (Level == "Name") @@ -1755,7 +1760,8 @@ void COFFDumper::printResourceDirectoryTable( // Iterate through level in resource directory tree. for (int i = 0; i < Table.NumberOfNameEntries + Table.NumberOfIDEntries; i++) { - auto Entry = unwrapOrError(getResourceDirectoryTableEntry(Table, i)); + auto Entry = unwrapOrError(Obj->getFileName(), + getResourceDirectoryTableEntry(Table, i)); StringRef Name; SmallString<20> IDStr; raw_svector_ostream OS(IDStr); @@ -1808,11 +1814,11 @@ void COFFDumper::printResourceDirectoryTable( } } -ErrorOr +Expected COFFDumper::getResourceDirectoryTableEntry(const coff_resource_dir_table &Table, uint32_t Index) { if (Index >= (uint32_t)(Table.NumberOfNameEntries + Table.NumberOfIDEntries)) - return object_error::parse_failed; + return createError("can't get resource directory table entry"); auto TablePtr = reinterpret_cast(&Table + 1); return TablePtr[Index]; } diff --git a/llvm/tools/llvm-readobj/llvm-readobj.h b/llvm/tools/llvm-readobj/llvm-readobj.h index 7ca1dfbec17e..145b116c9cf4 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.h +++ b/llvm/tools/llvm-readobj/llvm-readobj.h @@ -33,12 +33,6 @@ namespace llvm { return std::move(*E); } - template T unwrapOrError(ErrorOr EO) { - if (EO) - return *EO; - reportError(EO.getError().message()); - } - // TODO: This one is deprecated. Use one with a Input name below. template T unwrapOrError(Expected EO) { if (EO) -- 2.34.1