[llvm] 14e55f8 - [obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name.

Rahman Lavaee via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 16 11:33:45 PDT 2020


Author: Rahman Lavaee
Date: 2020-09-16T11:33:20-07:00
New Revision: 14e55f82980cf1342d4d3eea4885a5375e829496

URL: https://github.com/llvm/llvm-project/commit/14e55f82980cf1342d4d3eea4885a5375e829496
DIFF: https://github.com/llvm/llvm-project/commit/14e55f82980cf1342d4d3eea4885a5375e829496.diff

LOG: [obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name.

Without this patch, obj2yaml decodes the content of only one ".stack_size" section. Other sections are dumped with their full contents.

Reviewed By: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D87727

Added: 
    

Modified: 
    llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
    llvm/tools/obj2yaml/elf2yaml.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml b/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
index 8e6c66729c4e..98a5c5ae88aa 100644
--- a/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
@@ -83,3 +83,51 @@ Sections:
   - Name:    .stack_sizes
     Type:    SHT_PROGBITS
     Content: ""
+
+## Check obj2yaml can dump multiple .stack_sizes.
+
+# RUN: yaml2obj --docnum=4 %s -o %t4
+# RUN: obj2yaml %t4 | FileCheck %s --check-prefix=MULTI
+
+# MULTI:      --- !ELF
+# MULTI-NEXT: FileHeader:
+# MULTI-NEXT:   Class:   ELFCLASS64
+# MULTI-NEXT:   Data:    ELFDATA2LSB
+# MULTI-NEXT:   Type:    ET_EXEC
+# MULTI-NEXT:   Machine: EM_NONE
+# MULTI-NEXT: Sections:
+# MULTI-NEXT:   - Name:    .stack_sizes
+# MULTI-NEXT:     Type:    SHT_PROGBITS
+# MULTI-NEXT:     Entries:
+# MULTI-NEXT:       - Address: 0x0000000000000010
+# MULTI-NEXT:         Size:    0x0000000000000020
+# MULTI-NEXT:       - Address: 0x0000000000000030
+# MULTI-NEXT:         Size:    0x0000000000000040
+# MULTI-NEXT:   - Name:    '.stack_sizes (1)'
+# MULTI-NEXT:     Type:    SHT_PROGBITS
+# MULTI-NEXT:     Entries:
+# MULTI-NEXT:       - Address: 0x0000000000000050
+# MULTI-NEXT:         Size:    0x0000000000000001
+# MULTI-NEXT:       - Address: 0x0000000000000060
+# MULTI-NEXT:         Size:    0x0000000000000002
+
+--- !ELF
+FileHeader:
+  Class: ELFCLASS64
+  Data:  ELFDATA2LSB
+  Type:  ET_EXEC
+Sections:
+  - Name:    .stack_sizes
+    Type:    SHT_PROGBITS
+    Entries:
+      - Address: 0x0000000000000010
+        Size:    0x0000000000000020
+      - Address: 0x0000000000000030
+        Size:    0x0000000000000040
+  - Name:    '.stack_sizes (1)'
+    Type:    SHT_PROGBITS
+    Entries:
+      - Address: 0x0000000000000050
+        Size:    0x0000000000000001
+      - Address: 0x0000000000000060
+        Size:    0x0000000000000002

diff  --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp
index 3c3bef2dfbf4..d4bc135b4e0c 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -522,7 +522,7 @@ ELFDumper<ELFT>::dumpSections() {
 
     // Recognize some special SHT_PROGBITS sections by name.
     if (Sec.sh_type == ELF::SHT_PROGBITS) {
-      auto NameOrErr = getUniquedSectionName(&Sec);
+      auto NameOrErr = Obj.getSectionName(&Sec);
       if (!NameOrErr)
         return NameOrErr.takeError();
 


        


More information about the llvm-commits mailing list