diff options
| author | Fangrui Song <maskray@google.com> | 2019-04-07 08:28:56 +0000 |
|---|---|---|
| committer | Fangrui Song <maskray@google.com> | 2019-04-07 08:28:56 +0000 |
| commit | 454a7bb37229ee366b0ab75c410914d8cfa2a0c7 (patch) | |
| tree | 63282358d498947383c3c6015f5e6447e96d9f09 /llvm/tools | |
| parent | e7834bd159b763c5a6f3264cd16ca0161fed2cfa (diff) | |
| download | bcm5719-llvm-454a7bb37229ee366b0ab75c410914d8cfa2a0c7.tar.gz bcm5719-llvm-454a7bb37229ee366b0ab75c410914d8cfa2a0c7.zip | |
.
llvm-svn: 357856
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/llvm-objdump/ELFDump.cpp | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/llvm/tools/llvm-objdump/ELFDump.cpp b/llvm/tools/llvm-objdump/ELFDump.cpp index 90a99c971ee..3b293a75f08 100644 --- a/llvm/tools/llvm-objdump/ELFDump.cpp +++ b/llvm/tools/llvm-objdump/ELFDump.cpp @@ -23,13 +23,11 @@ using namespace llvm::object; template <class ELFT> Expected<StringRef> getDynamicStrTab(const ELFFile<ELFT> *Elf) { - typedef ELFFile<ELFT> ELFO; - auto DynamicEntriesOrError = Elf->dynamicEntries(); if (!DynamicEntriesOrError) return DynamicEntriesOrError.takeError(); - for (const typename ELFO::Elf_Dyn &Dyn : *DynamicEntriesOrError) { + for (const typename ELFT::Dyn &Dyn : *DynamicEntriesOrError) { if (Dyn.d_tag == ELF::DT_STRTAB) { auto MappedAddrOrError = Elf->toMappedAddr(Dyn.getPtr()); if (!MappedAddrOrError) @@ -43,7 +41,7 @@ Expected<StringRef> getDynamicStrTab(const ELFFile<ELFT> *Elf) { if (!SectionsOrError) return SectionsOrError.takeError(); - for (const typename ELFO::Elf_Shdr &Sec : *SectionsOrError) { + for (const typename ELFT::Shdr &Sec : *SectionsOrError) { if (Sec.sh_type == ELF::SHT_DYNSYM) return Elf->getStringTableForSymtab(Sec); } @@ -55,8 +53,6 @@ template <class ELFT> static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj, const RelocationRef &RelRef, SmallVectorImpl<char> &Result) { - typedef typename ELFObjectFile<ELFT>::Elf_Sym Elf_Sym; - typedef typename ELFObjectFile<ELFT>::Elf_Shdr Elf_Shdr; typedef typename ELFObjectFile<ELFT>::Elf_Rela Elf_Rela; const ELFFile<ELFT> &EF = *Obj->getELFFile(); @@ -88,12 +84,13 @@ static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj, if (!Undef) { symbol_iterator SI = RelRef.getSymbol(); - const Elf_Sym *Sym = Obj->getSymbol(SI->getRawDataRefImpl()); + const typename ELFT::Sym *Sym = Obj->getSymbol(SI->getRawDataRefImpl()); if (Sym->getType() == ELF::STT_SECTION) { Expected<section_iterator> SymSI = SI->getSection(); if (!SymSI) return errorToErrorCode(SymSI.takeError()); - const Elf_Shdr *SymSec = Obj->getSection((*SymSI)->getRawDataRefImpl()); + const typename ELFT::Shdr *SymSec = + Obj->getSection((*SymSI)->getRawDataRefImpl()); auto SecName = EF.getSectionName(SymSec); if (!SecName) return errorToErrorCode(SecName.takeError()); @@ -192,13 +189,12 @@ void printDynamicSection(const ELFFile<ELFT> *Elf, StringRef Filename) { } template <class ELFT> void printProgramHeaders(const ELFFile<ELFT> *o) { - typedef ELFFile<ELFT> ELFO; outs() << "Program Header:\n"; auto ProgramHeaderOrError = o->program_headers(); if (!ProgramHeaderOrError) report_fatal_error( errorToErrorCode(ProgramHeaderOrError.takeError()).message()); - for (const typename ELFO::Elf_Phdr &Phdr : *ProgramHeaderOrError) { + for (const typename ELFT::Phdr &Phdr : *ProgramHeaderOrError) { switch (Phdr.p_type) { case ELF::PT_DYNAMIC: outs() << " DYNAMIC "; @@ -259,22 +255,17 @@ template <class ELFT> void printProgramHeaders(const ELFFile<ELFT> *o) { template <class ELFT> void printSymbolVersionDependency(ArrayRef<uint8_t> Contents, StringRef StrTab) { - typedef ELFFile<ELFT> ELFO; - typedef typename ELFO::Elf_Verneed Elf_Verneed; - typedef typename ELFO::Elf_Vernaux Elf_Vernaux; - outs() << "Version References:\n"; const uint8_t *Buf = Contents.data(); while (Buf) { - const Elf_Verneed *Verneed = reinterpret_cast<const Elf_Verneed *>(Buf); + auto *Verneed = reinterpret_cast<const typename ELFT::Verneed *>(Buf); outs() << " required from " << StringRef(StrTab.drop_front(Verneed->vn_file).data()) << ":\n"; const uint8_t *BufAux = Buf + Verneed->vn_aux; while (BufAux) { - const Elf_Vernaux *Vernaux = - reinterpret_cast<const Elf_Vernaux *>(BufAux); + auto *Vernaux = reinterpret_cast<const typename ELFT::Vernaux *>(BufAux); outs() << " " << format("0x%08" PRIx32 " ", (uint32_t)Vernaux->vna_hash) << format("0x%02" PRIx16 " ", (uint16_t)Vernaux->vna_flags) |

