[PATCH] D80373: [llvm-readobj] - Improve error reporting for hash tables.

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 26 01:02:45 PDT 2020


jhenderson added inline comments.


================
Comment at: llvm/test/tools/llvm-readobj/ELF/hash-table.test:233
+# RUN: llvm-readelf --hash-table --elf-hash-histogram %t4.o 2>&1 \
+# RUN:  | FileCheck %s --check-prefix=SINGLE-WARN -DFILE=%t4.o --implicit-check-not="warning:"
+
----------------
Nit: I'd indent this line one more space (i.e. to be two spaces more indented than the line above).


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:2640
+static bool checkHashTable(const ELFDumper<ELFT> &Dumper,
+                           const ELFFile<ELFT> *Obj,
+                           const typename ELFT::Hash *H) {
----------------
Up to you, but you could avoid needing to pass in the `Obj` as well, by using `Dumper.getElfObject()->getELFFile()`, I believe.


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:2667-2668
     return;
   W.printNumber("Num Buckets", HashTable->nbucket);
   W.printNumber("Num Chains", HashTable->nchain);
+  if (!checkHashTable(*this, ObjF->getELFFile(), HashTable))
----------------
What happens if the HashTable ends before the nbucket/nchain fields can be read?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80373/new/

https://reviews.llvm.org/D80373





More information about the llvm-commits mailing list