diff options
author | Hans Wennborg <hans@hanshq.net> | 2019-05-16 12:08:34 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2019-05-16 12:08:34 +0000 |
commit | 4da9ff9fcfe8987472dc894489597bd338aac85e (patch) | |
tree | 21bc0332451ec4093db5da5255ee98577ac5926e /llvm/tools/llvm-cxxdump | |
parent | a8f88c388f75cb03bd21beb0b64f87d8a8727254 (diff) | |
download | bcm5719-llvm-4da9ff9fcfe8987472dc894489597bd338aac85e.tar.gz bcm5719-llvm-4da9ff9fcfe8987472dc894489597bd338aac85e.zip |
Revert r360876 "[Object] Change object::SectionRef::getContents() to return Expected<StringRef>"
It broke the Clang build, see llvm-commits thread.
> Expected<ArrayRef<uint8_t>> may be better but use Expected<StringRef> for now.
>
> Follow-up of D61781.
llvm-svn: 360878
Diffstat (limited to 'llvm/tools/llvm-cxxdump')
-rw-r--r-- | llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp b/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp index 83331265578..c850815cd2f 100644 --- a/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp +++ b/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp @@ -48,20 +48,15 @@ static void error(std::error_code EC) { exit(1); } -LLVM_ATTRIBUTE_NORETURN static void error(Error Err) { +static void error(Error Err) { + if (!Err) + return; logAllUnhandledErrors(std::move(Err), WithColor::error(outs()), "reading file: "); outs().flush(); exit(1); } -template <typename T> -T unwrapOrError(Expected<T> EO) { - if (!EO) - error(EO.takeError()); - return std::move(*EO); -} - } // namespace llvm static void reportError(StringRef Input, StringRef Message) { @@ -200,7 +195,8 @@ static void dumpCXXData(const ObjectFile *Obj) { // Skip virtual or BSS sections. if (Sec.isBSS() || Sec.isVirtual()) continue; - StringRef SecContents = unwrapOrError(Sec.getContents()); + StringRef SecContents; + error(Sec.getContents(SecContents)); Expected<uint64_t> SymAddressOrErr = Sym.getAddress(); error(errorToErrorCode(SymAddressOrErr.takeError())); uint64_t SymAddress = *SymAddressOrErr; @@ -514,8 +510,7 @@ static void dumpArchive(const Archive *Arc) { else reportError(Arc->getFileName(), cxxdump_error::unrecognized_file_format); } - if (Err) - error(std::move(Err)); + error(std::move(Err)); } static void dumpInput(StringRef File) { |