summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-05-29 06:18:34 +0000
committerFangrui Song <maskray@google.com>2019-05-29 06:18:34 +0000
commited6fa44f236c4cbdb4a63e0953e4801e5f10a55b (patch)
tree052573fcd977b4891f74fea659e1a573feb13981 /llvm/tools/llvm-readobj/ARMEHABIPrinter.h
parentb3bcbb5b6608043645219e6b9f0af76f5c8d0890 (diff)
downloadbcm5719-llvm-ed6fa44f236c4cbdb4a63e0953e4801e5f10a55b.tar.gz
bcm5719-llvm-ed6fa44f236c4cbdb4a63e0953e4801e5f10a55b.zip
[llvm-readobj] -u: don't crash when dumping SHT_ARM_EXIDX if .symtab doesn't exist
Reviewed By: kongyi Differential Revision: https://reviews.llvm.org/D62567 llvm-svn: 361929
Diffstat (limited to 'llvm/tools/llvm-readobj/ARMEHABIPrinter.h')
-rw-r--r--llvm/tools/llvm-readobj/ARMEHABIPrinter.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/tools/llvm-readobj/ARMEHABIPrinter.h b/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
index f847041a6ae..11f9d6166a5 100644
--- a/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
+++ b/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
@@ -365,6 +365,8 @@ template <typename ET>
ErrorOr<StringRef>
PrinterContext<ET>::FunctionAtAddress(unsigned Section,
uint64_t Address) const {
+ if (!Symtab)
+ return readobj_error::unknown_symbol;
auto StrTableOrErr = ELF->getStringTableForSymtab(*Symtab);
if (!StrTableOrErr)
error(StrTableOrErr.takeError());
@@ -550,13 +552,15 @@ void PrinterContext<ET>::PrintIndexTable(unsigned SectionIndex,
const Elf_Shdr *EHT =
FindExceptionTable(SectionIndex, Entry * IndexTableEntrySize + 4);
- if (auto Name = ELF->getSectionName(EHT))
- SW.printString("ExceptionHandlingTable", *Name);
+ if (EHT)
+ if (auto Name = ELF->getSectionName(EHT))
+ SW.printString("ExceptionHandlingTable", *Name);
uint64_t TableEntryOffset = PREL31(Word1, IT->sh_addr);
SW.printHex("TableEntryOffset", TableEntryOffset);
- PrintExceptionTable(IT, EHT, TableEntryOffset);
+ if (EHT)
+ PrintExceptionTable(IT, EHT, TableEntryOffset);
}
}
}
OpenPOWER on IntegriCloud