Remove Elf_Sym_Iter.
[oota-llvm.git] / tools / llvm-objdump / llvm-objdump.cpp
index 77c425d617e30b76a3216aeee36327312ff4c59e..610d54877eacd325c78811ab04945a6723e9b188 100644 (file)
@@ -321,6 +321,10 @@ static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
   const ELFFile<ELFT> &EF = *Obj->getELFFile();
 
   const Elf_Shdr *sec = EF.getSection(Rel.d.a);
+  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);
   uint8_t type;
   StringRef res;
   int64_t addend = 0;
@@ -351,8 +355,7 @@ static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
       return EC;
     Target = *SecName;
   } else {
-    ErrorOr<StringRef> SymName =
-        EF.getSymbolName(EF.getSection(sec->sh_link), symb);
+    ErrorOr<StringRef> SymName = EF.getSymbolName(StrTab, symb);
     if (!SymName)
       return SymName.getError();
     Target = *SymName;