mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-27 04:18:42 +00:00
Replace the last uses of ELF::getSymbolName in llvm-readobj.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242798 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
1 parent
cc3246a567
commit
7eeb71ddc3
3 files changed
+11
-2
No files matched your search
@@ -344,10 +344,15 @@ template <typename ET>
|
||||
ErrorOr<StringRef>
|
||||
PrinterContext<ET>::FunctionAtAddress(unsigned Section,
|
||||
uint64_t Address) const {
|
||||
const Elf_Shdr *Symtab = ELF->getDotSymtabSec();
|
||||
ErrorOr<StringRef> StrTableOrErr = ELF->getStringTableForSymtab(*Symtab);
|
||||
error(StrTableOrErr.getError());
|
||||
StringRef StrTable = *StrTableOrErr;
|
||||
|
||||
for (const Elf_Sym &Sym : ELF->symbols())
|
||||
if (Sym.st_shndx == Section && Sym.st_value == Address &&
|
||||
Sym.getType() == ELF::STT_FUNC)
|
||||
return ELF->getSymbolName(&Sym, false);
|
||||
return Sym.getName(StrTable);
|
||||
return readobj_error::unknown_symbol;
|
||||
}
|
||||
|
||||
|
||||
@@ -695,13 +695,14 @@ template<class ELFT>
|
||||
void ELFDumper<ELFT>::printDynamicRelocations() {
|
||||
W.startLine() << "Dynamic Relocations {\n";
|
||||
W.indent();
|
||||
StringRef StringTable = Obj->getDynamicStringTable();
|
||||
for (const typename ELFO::Elf_Rela &Rel : Obj->dyn_relas()) {
|
||||
SmallString<32> RelocName;
|
||||
Obj->getRelocationTypeName(Rel.getType(Obj->isMips64EL()), RelocName);
|
||||
StringRef SymbolName;
|
||||
uint32_t SymIndex = Rel.getSymbol(Obj->isMips64EL());
|
||||
const typename ELFO::Elf_Sym *Sym = Obj->dynamic_symbol_begin() + SymIndex;
|
||||
SymbolName = errorOrDefault(Obj->getSymbolName(Sym, true));
|
||||
SymbolName = errorOrDefault(Sym->getName(StringTable));
|
||||
if (opts::ExpandRelocs) {
|
||||
DictScope Group(W, "Relocation");
|
||||
W.printHex("Offset", Rel.r_offset);
|
||||
|
||||
Reference in new issue
Block a user