[lld] r346796 - [ELF] Add a better test for the multi-CU .gdb_index bug that D54361 fixed

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 13 12:49:37 PST 2018


Author: maskray
Date: Tue Nov 13 12:49:36 2018
New Revision: 346796

URL: http://llvm.org/viewvc/llvm-project?rev=346796&view=rev
Log:
[ELF] Add a better test for the multi-CU .gdb_index bug that D54361 fixed

gdb-index-multiple-cu-2.s puts the symbol in question to another object file %t1.o, so that its CuIndex is affected by the number of CUs in %t.o

Also change `Kind:` in a comment to `Attributes:` as a follow-up of D54480 and D54481

Added:
    lld/trunk/test/ELF/Inputs/gdb-index-multiple-cu-2.s
      - copied, changed from r346794, lld/trunk/test/ELF/gdb-index-multiple-cu.s
    lld/trunk/test/ELF/gdb-index-multiple-cu-2.s
Modified:
    lld/trunk/test/ELF/gdb-index-multiple-cu.s

Copied: lld/trunk/test/ELF/Inputs/gdb-index-multiple-cu-2.s (from r346794, lld/trunk/test/ELF/gdb-index-multiple-cu.s)
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/Inputs/gdb-index-multiple-cu-2.s?p2=lld/trunk/test/ELF/Inputs/gdb-index-multiple-cu-2.s&p1=lld/trunk/test/ELF/gdb-index-multiple-cu.s&r1=346794&r2=346796&rev=346796&view=diff
==============================================================================
--- lld/trunk/test/ELF/gdb-index-multiple-cu.s (original)
+++ lld/trunk/test/ELF/Inputs/gdb-index-multiple-cu-2.s Tue Nov 13 12:49:36 2018
@@ -1,21 +1,12 @@
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
-# RUN: ld.lld --gdb-index %t.o -o %t
-# RUN: llvm-dwarfdump -gdb-index %t | FileCheck %s
-
-# Kind << 24 | CuIndex = 48 << 24 | 1 = 0x30000001
-# CHECK: Constant pool
-# CHECK-NEXT: 0(0x0): 0x30000001
-
 .globl _start
 _start:
-	ret
 
 .section .debug_abbrev,"", at progbits
 	.byte	1              # Abbreviation Code
 	.byte	17             # DW_TAG_compile_unit
 	.byte	1              # DW_CHILDREN_yes
 	.ascii	"\264B"        # DW_AT_GNU_pubnames
-	.byte	12             # DW_FORM_flag
+	.byte	25             # DW_FORM_flag_present
 	.byte	0              # EOM(1)
 	.byte	0              # EOM(2)
 	.byte	2              # Abbreviation Code
@@ -33,32 +24,22 @@ _start:
 	.short	4              # DWARF version number
 	.long	0              # Offset Into Abbrev. Section
 	.byte	4              # Address Size
-	.byte	1              # Abbrev [1] DW_TAG_compile_unit
-	.byte	0              # DW_AT_GNU_pubnames
-	.byte	0
-.Lcu_end0:
-.Lcu_begin1:
-	.long	.Lcu_end1 - .Lcu_begin1 - 4
-	.short	4              # DWARF version number
-	.long	0              # Offset Into Abbrev. Section
-	.byte	4              # Address Size
 .Ldie:
 	.byte	1              # Abbrev [1] DW_TAG_compile_unit
-	.byte	1              # DW_AT_GNU_pubnames
 	.byte	2              # Abbrev [2] DW_TAG_subprogram
 	.asciz	"_start"       # DW_AT_name
 	.byte	0
-.Lcu_end1:
+.Lcu_end0:
 
 # .debug_gnu_pubnames has just one set, associated with .Lcu_begin1 (CuIndex: 1)
 .section .debug_gnu_pubnames,"", at progbits
-	.long	.LpubNames_end1-.LpubNames_begin1
-.LpubNames_begin1:
+	.long	.LpubNames_end0 - .LpubNames_begin0
+.LpubNames_begin0:
 	.short	2              # Version
-	.long	.Lcu_begin1    # CU Offset
-	.long	.Lcu_end1 - .Lcu_begin1
-	.long	.Ldie - .Lcu_begin1
-	.byte	48             # Kind: FUNCTION, EXTERNAL
+	.long	.Lcu_begin0    # CU Offset
+	.long	.Lcu_end0 - .Lcu_begin0
+	.long	.Ldie - .Lcu_begin0
+	.byte	48             # Attributes: FUNCTION, EXTERNAL
 	.asciz	"_start"       # External Name
 	.long	0
-.LpubNames_end1:
+.LpubNames_end0:

Added: lld/trunk/test/ELF/gdb-index-multiple-cu-2.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gdb-index-multiple-cu-2.s?rev=346796&view=auto
==============================================================================
--- lld/trunk/test/ELF/gdb-index-multiple-cu-2.s (added)
+++ lld/trunk/test/ELF/gdb-index-multiple-cu-2.s Tue Nov 13 12:49:36 2018
@@ -0,0 +1,35 @@
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/gdb-index-multiple-cu-2.s -o %t1.o
+# RUN: ld.lld --gdb-index %t.o %t1.o -o %t
+# RUN: llvm-dwarfdump -gdb-index %t | FileCheck %s
+
+# %t.o has 2 CUs while %t1 has 1, thus _start in %t1.o should have CuIndex 2.
+# Attributes << 24 | CuIndex = 48 << 24 | 2 = 0x30000002
+# CHECK:      Constant pool
+# CHECK-NEXT:   0(0x0): 0x30000002
+
+.section .debug_abbrev,"", at progbits
+	.byte	1              # Abbreviation Code
+	.byte	17             # DW_TAG_compile_unit
+	.byte	0              # DW_CHILDREN_yes
+	.byte	0              # EOM(1)
+	.byte	0              # EOM(2)
+	.byte	0
+
+.section .debug_info,"", at progbits
+.Lcu_begin0:
+	.long	.Lcu_end0 - .Lcu_begin0 - 4
+	.short	4              # DWARF version number
+	.long	0              # Offset Into Abbrev. Section
+	.byte	4              # Address Size
+	.byte	1              # Abbrev [1] DW_TAG_compile_unit
+	.byte	0
+.Lcu_end0:
+.Lcu_begin1:
+	.long	.Lcu_end1 - .Lcu_begin1 - 4
+	.short	4              # DWARF version number
+	.long	0              # Offset Into Abbrev. Section
+	.byte	4              # Address Size
+	.byte	1              # Abbrev [1] DW_TAG_compile_unit
+	.byte	0
+.Lcu_end1:

Modified: lld/trunk/test/ELF/gdb-index-multiple-cu.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gdb-index-multiple-cu.s?rev=346796&r1=346795&r2=346796&view=diff
==============================================================================
--- lld/trunk/test/ELF/gdb-index-multiple-cu.s (original)
+++ lld/trunk/test/ELF/gdb-index-multiple-cu.s Tue Nov 13 12:49:36 2018
@@ -2,7 +2,7 @@
 # RUN: ld.lld --gdb-index %t.o -o %t
 # RUN: llvm-dwarfdump -gdb-index %t | FileCheck %s
 
-# Kind << 24 | CuIndex = 48 << 24 | 1 = 0x30000001
+# Attributes << 24 | CuIndex = 48 << 24 | 1 = 0x30000001
 # CHECK: Constant pool
 # CHECK-NEXT: 0(0x0): 0x30000001
 
@@ -58,7 +58,7 @@ _start:
 	.long	.Lcu_begin1    # CU Offset
 	.long	.Lcu_end1 - .Lcu_begin1
 	.long	.Ldie - .Lcu_begin1
-	.byte	48             # Kind: FUNCTION, EXTERNAL
+	.byte	48             # Attributes: FUNCTION, EXTERNAL
 	.asciz	"_start"       # External Name
 	.long	0
 .LpubNames_end1:




More information about the llvm-commits mailing list