[PATCH] D54697: [llvm-objdump] Add `Version References` dumper (PR30241)

Xing via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 21 01:45:05 PST 2018


Higuoxing marked 7 inline comments as done.
Higuoxing added inline comments.


================
Comment at: tools/llvm-objdump/ELFDump.cpp:164
+
+  typedef ELFFile<ELFT> ELFO;
+  using VerNeed = typename ELFO::Elf_Verneed;
----------------
jhenderson wrote:
> Why not use `using` here?
I use `typedef` here, just like what they do in other functions.


================
Comment at: tools/llvm-objdump/ELFDump.cpp:239-259
 void llvm::printELFDynamicSection(const object::ObjectFile *Obj) {
   if (const auto *ELFObj = dyn_cast<ELF32LEObjectFile>(Obj))
     printDynamicSection(ELFObj->getELFFile(), Obj->getFileName());
   else if (const auto *ELFObj = dyn_cast<ELF32BEObjectFile>(Obj))
     printDynamicSection(ELFObj->getELFFile(), Obj->getFileName());
   else if (const auto *ELFObj = dyn_cast<ELF64LEObjectFile>(Obj))
     printDynamicSection(ELFObj->getELFFile(), Obj->getFileName());
----------------
jhenderson wrote:
> Higuoxing wrote:
> > Seems that these codes are redundant, can we simplify this?
> I'm not sure I follow what you mean?
I mean, these functions are similar (they all cast `ELF<32|64><BE|LE>` to `ElfObj`), can we simplify these functions?

```
printELFFileHeader
printELFDynamicSection
printELFSymbolVersionRefs
```




Repository:
  rL LLVM

https://reviews.llvm.org/D54697





More information about the llvm-commits mailing list