summaryrefslogtreecommitdiffstats
path: root/llvm/tools/obj2yaml/elf2yaml.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-23 12:49:40 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-23 12:49:40 +0000
commit651ed6c7d873273c0bdd43a97e90acbdf9edfe1b (patch)
treec36c431e2b63d1fb46afc4bdddcc827ac2140f04 /llvm/tools/obj2yaml/elf2yaml.cpp
parent454d14539597986d2cf4a50dbebf894081392f04 (diff)
downloadbcm5719-llvm-651ed6c7d873273c0bdd43a97e90acbdf9edfe1b.tar.gz
bcm5719-llvm-651ed6c7d873273c0bdd43a97e90acbdf9edfe1b.zip
Add a version of getSymbol with an explicit symbol table. Use it. NFC.
llvm-svn: 243011
Diffstat (limited to 'llvm/tools/obj2yaml/elf2yaml.cpp')
-rw-r--r--llvm/tools/obj2yaml/elf2yaml.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp
index def3981eae1..212e911452f 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -338,11 +338,12 @@ ErrorOr<ELFYAML::Group *> ELFDumper<ELFT>::dumpGroup(const Elf_Shdr *Shdr) {
if (std::error_code EC = dumpCommonSection(Shdr, *S))
return EC;
// Get sh_info which is the signature.
- const Elf_Sym *symbol = Obj.getSymbol(Shdr->sh_info);
- ErrorOr<const Elf_Shdr *> Symtab = Obj.getSection(Shdr->sh_link);
- if (std::error_code EC = Symtab.getError())
+ ErrorOr<const Elf_Shdr *> SymtabOrErr = Obj.getSection(Shdr->sh_link);
+ if (std::error_code EC = SymtabOrErr.getError())
return EC;
- ErrorOr<const Elf_Shdr *> StrTabSec = Obj.getSection((*Symtab)->sh_link);
+ const Elf_Shdr *Symtab = *SymtabOrErr;
+ const Elf_Sym *symbol = Obj.getSymbol(Symtab, Shdr->sh_info);
+ ErrorOr<const Elf_Shdr *> StrTabSec = Obj.getSection(Symtab->sh_link);
if (std::error_code EC = StrTabSec.getError())
return EC;
ErrorOr<StringRef> StrTabOrErr = Obj.getStringTable(*StrTabSec);
OpenPOWER on IntegriCloud