From 6def304209dd2152457c1ffda7330a6ac4e076f1 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 1 Jul 2015 12:56:27 +0000 Subject: 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 --- llvm/tools/llvm-readobj/ARMEHABIPrinter.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/tools/llvm-readobj/ARMEHABIPrinter.h') 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::FindExceptionTable(unsigned IndexSectionIndex, std::pair Symbol = ELF->getRelocationSymbol(&Sec, &RelA); - return ELF->getSection(Symbol.second); + ErrorOr Ret = ELF->getSection(Symbol.second); + if (std::error_code EC = Ret.getError()) + report_fatal_error(EC.message()); + return *Ret; } } } -- cgit v1.2.3