From aa784af74da872b18667b98299524607a62d56da Mon Sep 17 00:00:00 2001 From: Xing GUO Date: Wed, 10 Apr 2019 12:47:21 +0000 Subject: [PATCH] [llvm-readobj] Should declare `ListScope` for `verneed` entries. Summary: YAML mappings require keys to be unique. See: https://yaml.org/spec/1.2/spec.html#id2764652 Reviewers: jhenderson, grimar, rupprecht, espindola, ruiu Reviewed By: ruiu Subscribers: ruiu, emaste, arichardson, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60438 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358078 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/tools/llvm-readobj/elf-versioninfo.test | 40 +++++++++++--------- test/tools/yaml2obj/verneed-section.yaml | 40 +++++++++++--------- test/tools/yaml2obj/versym-section.yaml | 26 +++++++------ tools/llvm-readobj/ELFDumper.cpp | 1 + 4 files changed, 59 insertions(+), 48 deletions(-) diff --git a/test/tools/llvm-readobj/elf-versioninfo.test b/test/tools/llvm-readobj/elf-versioninfo.test index 3567831f14e..c5593a4166a 100644 --- a/test/tools/llvm-readobj/elf-versioninfo.test +++ b/test/tools/llvm-readobj/elf-versioninfo.test @@ -92,29 +92,33 @@ LLVM-VERNEED-NEXT: Dependency { LLVM-VERNEED-NEXT: Version: 1 LLVM-VERNEED-NEXT: Count: 2 LLVM-VERNEED-NEXT: FileName: verneed1.so.0 -LLVM-VERNEED-NEXT: Entry { -LLVM-VERNEED-NEXT: Hash: 1938 -LLVM-VERNEED-NEXT: Flags: 0x0 -LLVM-VERNEED-NEXT: Index: 3 -LLVM-VERNEED-NEXT: Name: v2 -LLVM-VERNEED-NEXT: } -LLVM-VERNEED-NEXT: Entry { -LLVM-VERNEED-NEXT: Hash: 1939 -LLVM-VERNEED-NEXT: Flags: 0x0 -LLVM-VERNEED-NEXT: Index: 2 -LLVM-VERNEED-NEXT: Name: v3 -LLVM-VERNEED-NEXT: } +LLVM-VERNEED-NEXT: Entries [ +LLVM-VERNEED-NEXT: Entry { +LLVM-VERNEED-NEXT: Hash: 1938 +LLVM-VERNEED-NEXT: Flags: 0x0 +LLVM-VERNEED-NEXT: Index: 3 +LLVM-VERNEED-NEXT: Name: v2 +LLVM-VERNEED-NEXT: } +LLVM-VERNEED-NEXT: Entry { +LLVM-VERNEED-NEXT: Hash: 1939 +LLVM-VERNEED-NEXT: Flags: 0x0 +LLVM-VERNEED-NEXT: Index: 2 +LLVM-VERNEED-NEXT: Name: v3 +LLVM-VERNEED-NEXT: } +LLVM-VERNEED-NEXT: ] LLVM-VERNEED-NEXT: } LLVM-VERNEED-NEXT: Dependency { LLVM-VERNEED-NEXT: Version: 1 LLVM-VERNEED-NEXT: Count: 1 LLVM-VERNEED-NEXT: FileName: verneed2.so.0 -LLVM-VERNEED-NEXT: Entry { -LLVM-VERNEED-NEXT: Hash: 1937 -LLVM-VERNEED-NEXT: Flags: 0x0 -LLVM-VERNEED-NEXT: Index: 4 -LLVM-VERNEED-NEXT: Name: v1 -LLVM-VERNEED-NEXT: } +LLVM-VERNEED-NEXT: Entries [ +LLVM-VERNEED-NEXT: Entry { +LLVM-VERNEED-NEXT: Hash: 1937 +LLVM-VERNEED-NEXT: Flags: 0x0 +LLVM-VERNEED-NEXT: Index: 4 +LLVM-VERNEED-NEXT: Name: v1 +LLVM-VERNEED-NEXT: } +LLVM-VERNEED-NEXT: ] LLVM-VERNEED-NEXT: } LLVM-VERNEED-NEXT: } diff --git a/test/tools/yaml2obj/verneed-section.yaml b/test/tools/yaml2obj/verneed-section.yaml index bdfddff9810..5a7aaa23c67 100644 --- a/test/tools/yaml2obj/verneed-section.yaml +++ b/test/tools/yaml2obj/verneed-section.yaml @@ -8,29 +8,33 @@ # CHECK-NEXT: Version: 1 # CHECK-NEXT: Count: 2 # CHECK-NEXT: FileName: dso.so.0 -# CHECK-NEXT: Entry { -# CHECK-NEXT: Hash: 1937 -# CHECK-NEXT: Flags: 0xA -# CHECK-NEXT: Index: 3 -# CHECK-NEXT: Name: v1 -# CHECK-NEXT: } -# CHECK-NEXT: Entry { -# CHECK-NEXT: Hash: 1938 -# CHECK-NEXT: Flags: 0xB -# CHECK-NEXT: Index: 4 -# CHECK-NEXT: Name: v2 -# CHECK-NEXT: } +# CHECK-NEXT: Entries [ +# CHECK-NEXT: Entry { +# CHECK-NEXT: Hash: 1937 +# CHECK-NEXT: Flags: 0xA +# CHECK-NEXT: Index: 3 +# CHECK-NEXT: Name: v1 +# CHECK-NEXT: } +# CHECK-NEXT: Entry { +# CHECK-NEXT: Hash: 1938 +# CHECK-NEXT: Flags: 0xB +# CHECK-NEXT: Index: 4 +# CHECK-NEXT: Name: v2 +# CHECK-NEXT: } +# CHECK-NEXT: ] # CHECK-NEXT: } # CHECK-NEXT: Dependency { # CHECK-NEXT: Version: 1 # CHECK-NEXT: Count: 1 # CHECK-NEXT: FileName: dso.so.1 -# CHECK-NEXT: Entry { -# CHECK-NEXT: Hash: 1939 -# CHECK-NEXT: Flags: 0xC -# CHECK-NEXT: Index: 2 -# CHECK-NEXT: Name: v3 -# CHECK-NEXT: } +# CHECK-NEXT: Entries [ +# CHECK-NEXT: Entry { +# CHECK-NEXT: Hash: 1939 +# CHECK-NEXT: Flags: 0xC +# CHECK-NEXT: Index: 2 +# CHECK-NEXT: Name: v3 +# CHECK-NEXT: } +# CHECK-NEXT: ] # CHECK-NEXT: } # CHECK-NEXT: } diff --git a/test/tools/yaml2obj/versym-section.yaml b/test/tools/yaml2obj/versym-section.yaml index 506e16cc5e1..fa28ae569b6 100644 --- a/test/tools/yaml2obj/versym-section.yaml +++ b/test/tools/yaml2obj/versym-section.yaml @@ -31,18 +31,20 @@ # CHECK-NEXT: Version: 1 # CHECK-NEXT: Count: 2 # CHECK-NEXT: FileName: dso.so.0 -# CHECK-NEXT: Entry { -# CHECK-NEXT: Hash: 1937 -# CHECK-NEXT: Flags: 0x0 -# CHECK-NEXT: Index: 3 -# CHECK-NEXT: Name: v1 -# CHECK-NEXT: } -# CHECK-NEXT: Entry { -# CHECK-NEXT: Hash: 1938 -# CHECK-NEXT: Flags: 0x0 -# CHECK-NEXT: Index: 4 -# CHECK-NEXT: Name: v2 -# CHECK-NEXT: } +# CHECK-NEXT: Entries [ +# CHECK-NEXT: Entry { +# CHECK-NEXT: Hash: 1937 +# CHECK-NEXT: Flags: 0x0 +# CHECK-NEXT: Index: 3 +# CHECK-NEXT: Name: v1 +# CHECK-NEXT: } +# CHECK-NEXT: Entry { +# CHECK-NEXT: Hash: 1938 +# CHECK-NEXT: Flags: 0x0 +# CHECK-NEXT: Index: 4 +# CHECK-NEXT: Name: v2 +# CHECK-NEXT: } +# CHECK-NEXT: ] # CHECK-NEXT: } # CHECK-NEXT: } diff --git a/tools/llvm-readobj/ELFDumper.cpp b/tools/llvm-readobj/ELFDumper.cpp index e6bf4a0b66e..fb60dcfa7a3 100644 --- a/tools/llvm-readobj/ELFDumper.cpp +++ b/tools/llvm-readobj/ELFDumper.cpp @@ -4635,6 +4635,7 @@ void LLVMStyle::printVersionDependencySection(const ELFFile *Obj, Obj->base() + StrTab->sh_offset + Verneed->vn_file))); const uint8_t *VernauxBuf = VerneedBuf + Verneed->vn_aux; + ListScope L(W, "Entries"); for (unsigned J = 0; J < Verneed->vn_cnt; ++J) { const Elf_Vernaux *Vernaux = reinterpret_cast(VernauxBuf); -- 2.40.0