[PATCH] D64631: [obj2yaml] - Rework tool's error reporting logic for ELF target.
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 13 03:47:46 PDT 2019
MaskRay added a comment.
Happy to see more ErrorOr/std::error_code becoming Error/Expected 😊
================
Comment at: include/llvm/Object/ELF.h:364
+
+ auto Symbols = *SymsOrErr;
+ if (Index >= Symbols.size())
----------------
`Elf_Sym_Range Symbols = *SymsOrErr;`
================
Comment at: tools/obj2yaml/elf2yaml.cpp:164
+ if (Error E = dumpSymbols(&Sec, Y->Symbols))
+ return std::move(E);
if (Sec.sh_type == ELF::SHT_DYNSYM)
----------------
`return E;` to avoid clang -Wpessimizing-move (automatic move from lvalues applies here)
================
Comment at: tools/obj2yaml/elf2yaml.cpp:176
+ return SecOrErr.takeError();
+ Y->Sections.push_back(std::unique_ptr<ELFYAML::Section>(*SecOrErr));
break;
----------------
`Y->Sections.emplace_back(*SecOrErr);`
We can leverage the ctor of unique_ptr here.
================
Comment at: tools/obj2yaml/elf2yaml.cpp:197
+ return SecOrErr.takeError();
+ Y->Sections.push_back(std::unique_ptr<ELFYAML::Section>(*SecOrErr));
break;
----------------
ditto
================
Comment at: tools/obj2yaml/elf2yaml.cpp:204
+ return GroupOrErr.takeError();
+ Y->Sections.push_back(std::unique_ptr<ELFYAML::Section>(*GroupOrErr));
break;
----------------
ditto
================
Comment at: tools/obj2yaml/elf2yaml.cpp:430
+ if (auto E = dumpCommonRelocationSection(Shdr, *S))
+ return std::move(E);
----------------
`return E;`
================
Comment at: tools/obj2yaml/elf2yaml.cpp:444
+ if (Error E = dumpRelocation(&Rel, SymTab, R))
+ return std::move(E);
S->Relocations.push_back(R);
----------------
`return E;`
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64631/new/
https://reviews.llvm.org/D64631
More information about the llvm-commits
mailing list