diff options
author | Fangrui Song <maskray@google.com> | 2019-05-02 10:32:03 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-05-02 10:32:03 +0000 |
commit | 8be28cdc5281edbe83886168978303345ca4a78b (patch) | |
tree | 613ac659e7c0e7384806266757e1fbf34bf418c6 /llvm/tools/llvm-readobj/COFFDumper.cpp | |
parent | 71569d0d523465203ba465a89c37d75075a5e2c2 (diff) | |
download | bcm5719-llvm-8be28cdc5281edbe83886168978303345ca4a78b.tar.gz bcm5719-llvm-8be28cdc5281edbe83886168978303345ca4a78b.zip |
[Object] Change getSectionName() to return Expected<StringRef>
Summary:
It currently receives an output parameter and returns
std::error_code. Expected<StringRef> fits for this purpose perfectly.
Differential Revision: https://reviews.llvm.org/D61421
llvm-svn: 359774
Diffstat (limited to 'llvm/tools/llvm-readobj/COFFDumper.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/COFFDumper.cpp | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp index aca5d133a82..e8db76f791c 100644 --- a/llvm/tools/llvm-readobj/COFFDumper.cpp +++ b/llvm/tools/llvm-readobj/COFFDumper.cpp @@ -1390,15 +1390,11 @@ void COFFDumper::printSymbols() { void COFFDumper::printDynamicSymbols() { ListScope Group(W, "DynamicSymbols"); } -static ErrorOr<StringRef> +static Expected<StringRef> getSectionName(const llvm::object::COFFObjectFile *Obj, int32_t SectionNumber, const coff_section *Section) { - if (Section) { - StringRef SectionName; - if (std::error_code EC = Obj->getSectionName(Section, SectionName)) - return EC; - return SectionName; - } + if (Section) + return Obj->getSectionName(Section); if (SectionNumber == llvm::COFF::IMAGE_SYM_DEBUG) return StringRef("IMAGE_SYM_DEBUG"); if (SectionNumber == llvm::COFF::IMAGE_SYM_ABSOLUTE) @@ -1423,11 +1419,10 @@ void COFFDumper::printSymbol(const SymbolRef &Sym) { if (Obj->getSymbolName(Symbol, SymbolName)) SymbolName = ""; - StringRef SectionName = ""; - ErrorOr<StringRef> Res = - getSectionName(Obj, Symbol.getSectionNumber(), Section); - if (Res) - SectionName = *Res; + StringRef SectionName; + if (Expected<StringRef> NameOrErr = + getSectionName(Obj, Symbol.getSectionNumber(), Section)) + SectionName = *NameOrErr; W.printString("Name", SymbolName); W.printNumber("Value", Symbol.getValue()); @@ -1495,16 +1490,12 @@ void COFFDumper::printSymbol(const SymbolRef &Sym) { && Aux->Selection == COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE) { const coff_section *Assoc; StringRef AssocName = ""; - std::error_code EC = Obj->getSection(AuxNumber, Assoc); - ErrorOr<StringRef> Res = getSectionName(Obj, AuxNumber, Assoc); - if (Res) - AssocName = *Res; - if (!EC) - EC = Res.getError(); - if (EC) { - AssocName = ""; + if (std::error_code EC = Obj->getSection(AuxNumber, Assoc)) error(EC); - } + Expected<StringRef> Res = getSectionName(Obj, AuxNumber, Assoc); + if (!Res) + error(Res.takeError()); + AssocName = *Res; W.printNumber("AssocSection", AssocName, AuxNumber); } @@ -1551,7 +1542,8 @@ void COFFDumper::printUnwindInfo() { case COFF::IMAGE_FILE_MACHINE_ARMNT: { ARM::WinEH::Decoder Decoder(W, Obj->getMachine() == COFF::IMAGE_FILE_MACHINE_ARM64); - Decoder.dumpProcedureData(*Obj); + // TODO Propagate the error. + consumeError(Decoder.dumpProcedureData(*Obj)); break; } default: |