OSDN Git Service

[llvm-readobj] Should declare `ListScope` for `verneed` entries.
authorXing GUO <higuoxing@gmail.com>
Wed, 10 Apr 2019 12:47:21 +0000 (12:47 +0000)
committerXing GUO <higuoxing@gmail.com>
Wed, 10 Apr 2019 12:47:21 +0000 (12:47 +0000)
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
test/tools/yaml2obj/verneed-section.yaml
test/tools/yaml2obj/versym-section.yaml
tools/llvm-readobj/ELFDumper.cpp

index 3567831..c5593a4 100644 (file)
@@ -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: }
 
index bdfddff..5a7aaa2 100644 (file)
@@ -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: }
 
index 506e16c..fa28ae5 100644 (file)
 # 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: }
 
index e6bf4a0..fb60dcf 100644 (file)
@@ -4635,6 +4635,7 @@ void LLVMStyle<ELFT>::printVersionDependencySection(const ELFFile<ELFT> *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<const Elf_Vernaux *>(VernauxBuf);