Skip to content

Commit 9693d28

Browse files
author
George Rimar
committed
[llvm-readobj] - Remove unwrapOrError(ErrorOr<T> 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
1 parent b65016d commit 9693d28

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

llvm/tools/llvm-readobj/COFFDumper.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ using namespace llvm::codeview;
6060
using namespace llvm::support;
6161
using namespace llvm::Win64EH;
6262

63+
static inline Error createError(const Twine &Err) {
64+
return make_error<StringError>(Err, object_error::parse_failed);
65+
}
66+
6367
namespace {
6468

6569
struct LoadConfigTables {
@@ -167,7 +171,7 @@ class COFFDumper : public ObjDumper {
167171
void printDelayImportedSymbols(
168172
const DelayImportDirectoryEntryRef &I,
169173
iterator_range<imported_symbol_iterator> Range);
170-
ErrorOr<const coff_resource_dir_entry &>
174+
Expected<const coff_resource_dir_entry &>
171175
getResourceDirectoryTableEntry(const coff_resource_dir_table &Table,
172176
uint32_t Index);
173177

@@ -1729,7 +1733,8 @@ COFFDumper::countTotalTableEntries(ResourceSectionRef RSF,
17291733
uint32_t TotalEntries = 0;
17301734
for (int i = 0; i < Table.NumberOfNameEntries + Table.NumberOfIDEntries;
17311735
i++) {
1732-
auto Entry = unwrapOrError(getResourceDirectoryTableEntry(Table, i));
1736+
auto Entry = unwrapOrError(Obj->getFileName(),
1737+
getResourceDirectoryTableEntry(Table, i));
17331738
if (Entry.Offset.isSubDir()) {
17341739
StringRef NextLevel;
17351740
if (Level == "Name")
@@ -1755,7 +1760,8 @@ void COFFDumper::printResourceDirectoryTable(
17551760
// Iterate through level in resource directory tree.
17561761
for (int i = 0; i < Table.NumberOfNameEntries + Table.NumberOfIDEntries;
17571762
i++) {
1758-
auto Entry = unwrapOrError(getResourceDirectoryTableEntry(Table, i));
1763+
auto Entry = unwrapOrError(Obj->getFileName(),
1764+
getResourceDirectoryTableEntry(Table, i));
17591765
StringRef Name;
17601766
SmallString<20> IDStr;
17611767
raw_svector_ostream OS(IDStr);
@@ -1808,11 +1814,11 @@ void COFFDumper::printResourceDirectoryTable(
18081814
}
18091815
}
18101816

1811-
ErrorOr<const coff_resource_dir_entry &>
1817+
Expected<const coff_resource_dir_entry &>
18121818
COFFDumper::getResourceDirectoryTableEntry(const coff_resource_dir_table &Table,
18131819
uint32_t Index) {
18141820
if (Index >= (uint32_t)(Table.NumberOfNameEntries + Table.NumberOfIDEntries))
1815-
return object_error::parse_failed;
1821+
return createError("can't get resource directory table entry");
18161822
auto TablePtr = reinterpret_cast<const coff_resource_dir_entry *>(&Table + 1);
18171823
return TablePtr[Index];
18181824
}

llvm/tools/llvm-readobj/llvm-readobj.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ namespace llvm {
3333
return std::move(*E);
3434
}
3535

36-
template <class T> T unwrapOrError(ErrorOr<T> EO) {
37-
if (EO)
38-
return *EO;
39-
reportError(EO.getError().message());
40-
}
41-
4236
// TODO: This one is deprecated. Use one with a Input name below.
4337
template <class T> T unwrapOrError(Expected<T> EO) {
4438
if (EO)

0 commit comments

Comments
 (0)