[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