summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-11-03 13:43:30 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-11-03 13:43:30 +0000
commit77e7778b3e097ad88c71c7dac789e245c8f3e33a (patch)
tree1fa16db0aaedf07fa1f807becac9d3787d8838ec /tools
parent74509075a40103f39f0f248d8820bafdb965515c (diff)
Replace a report_fatal_error with an ErrorOr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285905 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/llvm-readobj/ARMEHABIPrinter.h2
-rw-r--r--tools/llvm-readobj/ELFDumper.cpp7
-rw-r--r--tools/obj2yaml/elf2yaml.cpp5
3 files changed, 9 insertions, 5 deletions
diff --git a/tools/llvm-readobj/ARMEHABIPrinter.h b/tools/llvm-readobj/ARMEHABIPrinter.h
index a85f987def0..1e0e8714b6e 100644
--- a/tools/llvm-readobj/ARMEHABIPrinter.h
+++ b/tools/llvm-readobj/ARMEHABIPrinter.h
@@ -353,7 +353,7 @@ PrinterContext<ET>::FunctionAtAddress(unsigned Section,
error(StrTableOrErr.getError());
StringRef StrTable = *StrTableOrErr;
- for (const Elf_Sym &Sym : ELF->symbols(Symtab))
+ for (const Elf_Sym &Sym : unwrapOrError(ELF->symbols(Symtab)))
if (Sym.st_shndx == Section && Sym.st_value == Address &&
Sym.getType() == ELF::STT_FUNC) {
auto NameOrErr = Sym.getName(StrTable);
diff --git a/tools/llvm-readobj/ELFDumper.cpp b/tools/llvm-readobj/ELFDumper.cpp
index 845abf9b5fe..f50ecc157d5 100644
--- a/tools/llvm-readobj/ELFDumper.cpp
+++ b/tools/llvm-readobj/ELFDumper.cpp
@@ -246,7 +246,7 @@ void ELFDumper<ELFT>::printSymbolsHelper(bool IsDynamic) const {
if (!DotSymtabSec)
return;
StrTable = unwrapOrError(Obj->getStringTableForSymtab(*DotSymtabSec));
- Syms = Obj->symbols(DotSymtabSec);
+ Syms = unwrapOrError(Obj->symbols(DotSymtabSec));
SymtabName = unwrapOrError(Obj->getSectionName(DotSymtabSec));
Entries = DotSymtabSec->getEntityCount();
}
@@ -3494,11 +3494,12 @@ template <class ELFT> void LLVMStyle<ELFT>::printSections(const ELFO *Obj) {
const Elf_Shdr *Symtab = this->dumper()->getDotSymtabSec();
StringRef StrTable = unwrapOrError(Obj->getStringTableForSymtab(*Symtab));
- for (const Elf_Sym &Sym : Obj->symbols(Symtab)) {
+ for (const Elf_Sym &Sym : unwrapOrError(Obj->symbols(Symtab))) {
const Elf_Shdr *SymSec = unwrapOrError(
Obj->getSection(&Sym, Symtab, this->dumper()->getShndxTable()));
if (SymSec == &Sec)
- printSymbol(Obj, &Sym, Obj->symbols(Symtab).begin(), StrTable, false);
+ printSymbol(Obj, &Sym, unwrapOrError(Obj->symbols(Symtab)).begin(),
+ StrTable, false);
}
}
diff --git a/tools/obj2yaml/elf2yaml.cpp b/tools/obj2yaml/elf2yaml.cpp
index bc790e4faac..8da8aa10c11 100644
--- a/tools/obj2yaml/elf2yaml.cpp
+++ b/tools/obj2yaml/elf2yaml.cpp
@@ -145,7 +145,10 @@ ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() {
StringRef StrTable = *StrTableOrErr;
bool IsFirstSym = true;
- for (const Elf_Sym &Sym : Obj.symbols(Symtab)) {
+ auto SymtabOrErr = Obj.symbols(Symtab);
+ if (std::error_code EC = SymtabOrErr.getError())
+ return EC;
+ for (const Elf_Sym &Sym : *SymtabOrErr) {
if (IsFirstSym) {
IsFirstSym = false;
continue;