[PATCH] D71118: [llvm-readelf/llvm-readobj] - Improved the error reporting in a few method related to versioning.

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 9 02:03:24 PST 2019


jhenderson added inline comments.


================
Comment at: llvm/test/tools/llvm-readobj/elf-verdef-invalid.test:266
 
-## Check we error out when trying to print version symbols, but SHT_GNU_verdef is invalid due to any reason.
+## Check we report out when trying to print version symbols, but SHT_GNU_verdef is invalid due to any reason.
 
----------------
"we report when..."

This line is quite long. Maybe it should be split.


================
Comment at: llvm/test/tools/llvm-readobj/elf-versym-invalid.test:222
+
+## Version index in a SHT_GNU_versym sections overflows the version map.
+## Check we report it when trying to dump dynamic symbols.
----------------
sections -> section


================
Comment at: llvm/test/tools/llvm-readobj/elf-versym-invalid.test:226
+# RUN: yaml2obj %s --docnum=8 -o %t8
+# RUN: llvm-readobj -dt %t8 2>&1 | FileCheck -DFILE=%t8 --check-prefix=VERSION-OVERFLOW-LLVM %s
+# RUN: llvm-readelf --dyn-syms %t8 2>&1 | FileCheck -DFILE=%t8 --check-prefix=VERSION-OVERFLOW-GNU %s
----------------
I'd use `--dyn-syms` here instead of `-dt`, since there's no reason for it to be inconsistent with the line below.


================
Comment at: llvm/test/tools/llvm-readobj/elf-versym-invalid.test:256
+    Type:    SHT_GNU_versym
+    Entries: [ 0xFF, 0xFE ]
+DynamicSymbols:
----------------
Would it be worth an extra 0xFF entry to show that the warning gets uniqued?


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:4126
+  std::vector<StringRef> Versions;
+  for (size_t I = 0; I < VerTable.size(); ++I) {
+    unsigned Ndx = VerTable[I].vs_index;
----------------
`for (size_t I = 0, S = VerTable.size(); I < S; ++I)`




================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:4136
+        this->dumper()->getSymbolVersionByIndex(Ndx, IsDefault);
+    if (!NameOrErr || NameOrErr->empty()) {
+      if (!NameOrErr) {
----------------
I'm not sure it's right to say that an empty name is corrupt?


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

https://reviews.llvm.org/D71118





More information about the llvm-commits mailing list