diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-21 18:04:29 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-21 18:04:29 +0000 |
commit | bd05101e67f975ef4a42585b732ee03d135645d2 (patch) | |
tree | ab4c1c70f5d73fc5f2d34dfd64b404339ae99095 | |
parent | 3fdf3294ab72b07986a92ea7f2d37843ca6ce1d7 (diff) | |
download | bcm5719-llvm-bd05101e67f975ef4a42585b732ee03d135645d2.tar.gz bcm5719-llvm-bd05101e67f975ef4a42585b732ee03d135645d2.zip |
Remove getStaticSymbolName.
Every user now keeps track of the correct string table to use.
llvm-svn: 242818
-rw-r--r-- | llvm/include/llvm/Object/ELF.h | 7 | ||||
-rw-r--r-- | llvm/tools/obj2yaml/elf2yaml.cpp | 14 |
2 files changed, 11 insertions, 10 deletions
diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h index 4ba5bc10ffe..6ebb92f7ee8 100644 --- a/llvm/include/llvm/Object/ELF.h +++ b/llvm/include/llvm/Object/ELF.h @@ -388,7 +388,6 @@ public: ErrorOr<const Elf_Shdr *> getSection(uint32_t Index) const; const Elf_Sym *getSymbol(uint32_t index) const; - ErrorOr<StringRef> getStaticSymbolName(const Elf_Sym *Symb) const; ErrorOr<StringRef> getDynamicSymbolName(const Elf_Sym *Symb) const; ErrorOr<StringRef> getSectionName(const Elf_Shdr *Section) const; @@ -899,12 +898,6 @@ const char *ELFFile<ELFT>::getDynamicString(uintX_t Offset) const { template <class ELFT> ErrorOr<StringRef> -ELFFile<ELFT>::getStaticSymbolName(const Elf_Sym *Symb) const { - return Symb->getName(DotStrtab); -} - -template <class ELFT> -ErrorOr<StringRef> ELFFile<ELFT>::getDynamicSymbolName(const Elf_Sym *Symb) const { return StringRef(getDynamicString(Symb->st_name)); } diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp index 05efdb6c759..def3981eae1 100644 --- a/llvm/tools/obj2yaml/elf2yaml.cpp +++ b/llvm/tools/obj2yaml/elf2yaml.cpp @@ -27,7 +27,8 @@ class ELFDumper { const object::ELFFile<ELFT> &Obj; - std::error_code dumpSymbol(const Elf_Sym *Sym, ELFYAML::Symbol &S); + std::error_code dumpSymbol(const Elf_Sym *Sym, StringRef StrTable, + ELFYAML::Symbol &S); std::error_code dumpCommonSection(const Elf_Shdr *Shdr, ELFYAML::Section &S); std::error_code dumpCommonRelocationSection(const Elf_Shdr *Shdr, ELFYAML::RelocationSection &S); @@ -121,6 +122,12 @@ ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() { } // Dump symbols + const Elf_Shdr *Symtab = Obj.getDotSymtabSec(); + ErrorOr<StringRef> StrTableOrErr = Obj.getStringTableForSymtab(*Symtab); + if (std::error_code EC = StrTableOrErr.getError()) + return EC; + StringRef StrTable = *StrTableOrErr; + bool IsFirstSym = true; for (const Elf_Sym &Sym : Obj.symbols()) { if (IsFirstSym) { @@ -129,7 +136,7 @@ ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() { } ELFYAML::Symbol S; - if (std::error_code EC = ELFDumper<ELFT>::dumpSymbol(&Sym, S)) + if (std::error_code EC = ELFDumper<ELFT>::dumpSymbol(&Sym, StrTable, S)) return EC; switch (Sym.getBinding()) @@ -153,13 +160,14 @@ ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() { template <class ELFT> std::error_code ELFDumper<ELFT>::dumpSymbol(const Elf_Sym *Sym, + StringRef StrTable, ELFYAML::Symbol &S) { S.Type = Sym->getType(); S.Value = Sym->st_value; S.Size = Sym->st_size; S.Other = Sym->st_other; - ErrorOr<StringRef> NameOrErr = Obj.getStaticSymbolName(Sym); + ErrorOr<StringRef> NameOrErr = Sym->getName(StrTable); if (std::error_code EC = NameOrErr.getError()) return EC; S.Name = NameOrErr.get(); |