summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-01 12:56:27 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-01 12:56:27 +0000
commit6def304209dd2152457c1ffda7330a6ac4e076f1 (patch)
treef0b47d1c1dcc683f50552e6850ac19aa6987ed58 /llvm/tools/llvm-readobj/ARMEHABIPrinter.h
parent6ae400d12256de0547c1b06919d126f664c78d7e (diff)
downloadbcm5719-llvm-6def304209dd2152457c1ffda7330a6ac4e076f1.tar.gz
bcm5719-llvm-6def304209dd2152457c1ffda7330a6ac4e076f1.zip
Return ErrorOr from getSection.
This also improves the logic of what is an error: * getSection(uint_32): only return an error if the index is out of bounds. The index 0 corresponds to a perfectly valid entry. * getSection(Elf_Sym): Returns null for symbols that normally don't have sections and error for out of bound indexes. In many places this just moves the report_fatal_error up the stack, but those can then be fixed in smaller patches. llvm-svn: 241156
Diffstat (limited to 'llvm/tools/llvm-readobj/ARMEHABIPrinter.h')
-rw-r--r--llvm/tools/llvm-readobj/ARMEHABIPrinter.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/tools/llvm-readobj/ARMEHABIPrinter.h b/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
index 55d10b151de..dd2490d503d 100644
--- a/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
+++ b/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
@@ -377,7 +377,10 @@ PrinterContext<ET>::FindExceptionTable(unsigned IndexSectionIndex,
std::pair<const Elf_Shdr *, const Elf_Sym *> Symbol =
ELF->getRelocationSymbol(&Sec, &RelA);
- return ELF->getSection(Symbol.second);
+ ErrorOr<const Elf_Shdr *> Ret = ELF->getSection(Symbol.second);
+ if (std::error_code EC = Ret.getError())
+ report_fatal_error(EC.message());
+ return *Ret;
}
}
}
OpenPOWER on IntegriCloud