[PATCH] D88089: [llvm-readelf/obj] - Fix extended section symbol indices printed in warnings for MIPS GOT/PLT entries.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 02:05:43 PDT 2020


grimar added inline comments.


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:6778-6779
       std::string SymName = this->dumper()->getFullSymbolName(
-          Sym, Sym - &Parser.getGotDynSyms()[0],
-          this->dumper()->getDynamicStringTable(), true);
       W.printNumber("Name", SymName, Sym->st_name);
----------------
jhenderson wrote:
> I don't know MIPS at all. Is `getGotDynSyms()` equivalent to `dynamic_symbols()`?
No. `getGotDynSyms` was introduced by me in D87899 and it was a mistake. It returns `GotDynSyms`, which is:

```
GotDynSyms = DynSyms.drop_front(*DtGotSym);
```

where `DynSyms` == `dynamic_symbols()`

In this place we want to pass symbol index, so should really use `dynamic_symbols()[0]` instead of `GotDynSyms[0]`.

This issue was catched by the test case.


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

https://reviews.llvm.org/D88089



More information about the llvm-commits mailing list