summaryrefslogtreecommitdiff
path: root/tools/llvm-readobj/Win64EHDumper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvm-readobj/Win64EHDumper.cpp')
-rw-r--r--tools/llvm-readobj/Win64EHDumper.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/tools/llvm-readobj/Win64EHDumper.cpp b/tools/llvm-readobj/Win64EHDumper.cpp
index 2da5ae3200fde..f7e56b3615425 100644
--- a/tools/llvm-readobj/Win64EHDumper.cpp
+++ b/tools/llvm-readobj/Win64EHDumper.cpp
@@ -120,13 +120,17 @@ static std::string formatSymbol(const Dumper::Context &Ctx,
SymbolRef Symbol;
if (!Ctx.ResolveSymbol(Section, Offset, Symbol, Ctx.UserData)) {
- if (ErrorOr<StringRef> Name = Symbol.getName()) {
+ Expected<StringRef> Name = Symbol.getName();
+ if (Name) {
OS << *Name;
if (Displacement > 0)
OS << format(" +0x%X (0x%" PRIX64 ")", Displacement, Offset);
else
OS << format(" (0x%" PRIX64 ")", Offset);
return OS.str();
+ } else {
+ // TODO: Actually report errors helpfully.
+ consumeError(Name.takeError());
}
}
@@ -144,12 +148,14 @@ static std::error_code resolveRelocation(const Dumper::Context &Ctx,
Ctx.ResolveSymbol(Section, Offset, Symbol, Ctx.UserData))
return EC;
- ErrorOr<uint64_t> ResolvedAddressOrErr = Symbol.getAddress();
- if (std::error_code EC = ResolvedAddressOrErr.getError())
- return EC;
+ Expected<uint64_t> ResolvedAddressOrErr = Symbol.getAddress();
+ if (!ResolvedAddressOrErr)
+ return errorToErrorCode(ResolvedAddressOrErr.takeError());
ResolvedAddress = *ResolvedAddressOrErr;
- ErrorOr<section_iterator> SI = Symbol.getSection();
+ Expected<section_iterator> SI = Symbol.getSection();
+ if (!SI)
+ return errorToErrorCode(SI.takeError());
ResolvedSection = Ctx.COFF.getCOFFSection(**SI);
return std::error_code();
}