diff options
-rw-r--r-- | lld/test/ELF/Inputs/gdb-index-multiple-cu-2.s | 45 | ||||
-rw-r--r-- | lld/test/ELF/gdb-index-multiple-cu-2.s | 35 | ||||
-rw-r--r-- | lld/test/ELF/gdb-index-multiple-cu.s | 4 |
3 files changed, 82 insertions, 2 deletions
diff --git a/lld/test/ELF/Inputs/gdb-index-multiple-cu-2.s b/lld/test/ELF/Inputs/gdb-index-multiple-cu-2.s new file mode 100644 index 00000000000..80c738eab1f --- /dev/null +++ b/lld/test/ELF/Inputs/gdb-index-multiple-cu-2.s @@ -0,0 +1,45 @@ +.globl _start +_start: + +.section .debug_abbrev,"",@progbits + .byte 1 # Abbreviation Code + .byte 17 # DW_TAG_compile_unit + .byte 1 # DW_CHILDREN_yes + .ascii "\264B" # DW_AT_GNU_pubnames + .byte 25 # DW_FORM_flag_present + .byte 0 # EOM(1) + .byte 0 # EOM(2) + .byte 2 # Abbreviation Code + .byte 46 # DW_TAG_subprogram + .byte 0 # DW_CHILDREN_no + .byte 3 # DW_AT_name + .byte 8 # DW_FORM_string + .byte 0 # EOM(1) + .byte 0 # EOM(2) + .byte 0 + +.section .debug_info,"",@progbits +.Lcu_begin0: + .long .Lcu_end0 - .Lcu_begin0 - 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 2 # Abbrev [2] DW_TAG_subprogram + .asciz "_start" # DW_AT_name + .byte 0 +.Lcu_end0: + +# .debug_gnu_pubnames has just one set, associated with .Lcu_begin1 (CuIndex: 1) +.section .debug_gnu_pubnames,"",@progbits + .long .LpubNames_end0 - .LpubNames_begin0 +.LpubNames_begin0: + .short 2 # Version + .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_end0: diff --git a/lld/test/ELF/gdb-index-multiple-cu-2.s b/lld/test/ELF/gdb-index-multiple-cu-2.s new file mode 100644 index 00000000000..6fafaf54348 --- /dev/null +++ b/lld/test/ELF/gdb-index-multiple-cu-2.s @@ -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,"",@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,"",@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: diff --git a/lld/test/ELF/gdb-index-multiple-cu.s b/lld/test/ELF/gdb-index-multiple-cu.s index 7bfc95af17d..3952687b75c 100644 --- a/lld/test/ELF/gdb-index-multiple-cu.s +++ b/lld/test/ELF/gdb-index-multiple-cu.s @@ -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: |