[llvm] r353814 - [llvm-readobj] - Simplify .gnu.version_r dumping a bit.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 12 01:50:05 PST 2019
Author: grimar
Date: Tue Feb 12 01:50:04 2019
New Revision: 353814
URL: http://llvm.org/viewvc/llvm-project?rev=353814&view=rev
Log:
[llvm-readobj] - Simplify .gnu.version_r dumping a bit.
Current implementation takes "Number of needed versions" from DT_VERNEEDNUM
dynamic tag entry. Though it would be a bit simpler to take it from sh_info
section header field directly:
https://docs.oracle.com/cd/E19683-01/816-1386/chapter6-94076/index.html
Differential revision: https://reviews.llvm.org/D58048
Modified:
llvm/trunk/tools/llvm-readobj/ELFDumper.cpp
Modified: llvm/trunk/tools/llvm-readobj/ELFDumper.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp?rev=353814&r1=353813&r2=353814&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (original)
+++ llvm/trunk/tools/llvm-readobj/ELFDumper.cpp Tue Feb 12 01:50:04 2019
@@ -711,19 +711,12 @@ static void printVersionDependencySectio
if (!Sec)
return;
- unsigned VerNeedNum = 0;
- for (const typename ELFO::Elf_Dyn &Dyn : Dumper->dynamic_table()) {
- if (Dyn.d_tag == DT_VERNEEDNUM) {
- VerNeedNum = Dyn.d_un.d_val;
- break;
- }
- }
-
const uint8_t *SecData = (const uint8_t *)Obj->base() + Sec->sh_offset;
const typename ELFO::Elf_Shdr *StrTab =
unwrapOrError(Obj->getSection(Sec->sh_link));
const uint8_t *P = SecData;
+ unsigned VerNeedNum = Sec->sh_info;
for (unsigned I = 0; I < VerNeedNum; ++I) {
const VerNeed *Need = reinterpret_cast<const VerNeed *>(P);
DictScope Entry(W, "Dependency");
More information about the llvm-commits
mailing list