summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-06-29 14:39:25 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-06-29 14:39:25 +0000
commit6a1bfb2f9b4f0c56099475d6aaba7b218600d666 (patch)
tree77cc7de80d3d6f9b00e1f3a0a59f1dd6f3db16f8 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parentffb551b2b03566620fd037736c9bfc089c5102f5 (diff)
downloadbcm5719-llvm-6a1bfb2f9b4f0c56099475d6aaba7b218600d666.tar.gz
bcm5719-llvm-6a1bfb2f9b4f0c56099475d6aaba7b218600d666.zip
Factor out the checking of string tables.
This moves the error checking for string tables to getStringTable which returns an ErrorOr<StringRef>. This improves error checking, makes it uniform across all string tables and makes it possible to check them once instead of once per name. llvm-svn: 240950
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index 610d54877ea..33308234e7d 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -324,7 +324,11 @@ static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
const Elf_Shdr *SymTab = EF.getSection(sec->sh_link);
assert(SymTab->sh_type == ELF::SHT_SYMTAB ||
SymTab->sh_type == ELF::SHT_DYNSYM);
- const Elf_Shdr *StrTab = EF.getSection(SymTab->sh_link);
+ const Elf_Shdr *StrTabSec = EF.getSection(SymTab->sh_link);
+ ErrorOr<StringRef> StrTabOrErr = EF.getStringTable(StrTabSec);
+ if (std::error_code EC = StrTabOrErr.getError())
+ return EC;
+ StringRef StrTab = *StrTabOrErr;
uint8_t type;
StringRef res;
int64_t addend = 0;
OpenPOWER on IntegriCloud