diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-21 18:15:32 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-21 18:15:32 +0000 |
commit | 5f95fa31b3c7b9efa307546945610071f836a23d (patch) | |
tree | 5fb372ea08a8ddbe8bcd5be5a1cfc684196852cd | |
parent | d520a250b6525be399c732871cdacbfcc335bbc5 (diff) | |
download | bcm5719-llvm-5f95fa31b3c7b9efa307546945610071f836a23d.tar.gz bcm5719-llvm-5f95fa31b3c7b9efa307546945610071f836a23d.zip |
Drop last use of getDynamicSymbolName.
llvm-svn: 242820
-rw-r--r-- | lld/lib/ReaderWriter/ELF/DynamicFile.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/ELF/DynamicFile.cpp b/lld/lib/ReaderWriter/ELF/DynamicFile.cpp index d3712de2b3d..a8209dedef2 100644 --- a/lld/lib/ReaderWriter/ELF/DynamicFile.cpp +++ b/lld/lib/ReaderWriter/ELF/DynamicFile.cpp @@ -54,23 +54,31 @@ template <class ELFT> bool DynamicFile<ELFT>::canParse(file_magic magic) { } template <class ELFT> std::error_code DynamicFile<ELFT>::doParse() { + typedef llvm::object::ELFFile<ELFT> ELFO; + std::error_code ec; - _objFile.reset(new llvm::object::ELFFile<ELFT>(_mb->getBuffer(), ec)); + _objFile.reset(new ELFO(_mb->getBuffer(), ec)); if (ec) return ec; - llvm::object::ELFFile<ELFT> &obj = *_objFile; + ELFO &obj = *_objFile; _soname = obj.getLoadName(); if (_soname.empty()) _soname = llvm::sys::path::filename(path()); + const typename ELFO::Elf_Shdr *dynSymSec = obj.getDotDynSymSec(); + ErrorOr<StringRef> strTableOrErr = obj.getStringTableForSymtab(*dynSymSec); + if (std::error_code ec = strTableOrErr.getError()) + return ec; + StringRef stringTable = *strTableOrErr; + // Create a map from names to dynamic symbol table entries. // TODO: This should use the object file's build in hash table instead if // it exists. for (auto i = obj.dynamic_symbol_begin(), e = obj.dynamic_symbol_end(); i != e; ++i) { - auto name = obj.getDynamicSymbolName(i); + auto name = i->getName(stringTable); if ((ec = name.getError())) return ec; |