Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / ELF / gdb-index-multiple-cu.s
blob5227681e969643dbeebaf7762fc4512e65469eae
1 # REQUIRES: x86
2 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
3 # RUN: ld.lld --gdb-index %t.o -o %t 2>&1 | count 0
4 # RUN: llvm-dwarfdump -gdb-index %t | FileCheck %s
6 # cuIndexAndAttrs of _start:
7 # attributes << 24 | cuIndex = 48 << 24 | 0 = 0x30000000
8 # cuIndexAndAttrs of foo:
9 # attributes << 24 | cuIndex = 48 << 24 | 1 = 0x30000001
10 # CHECK: Symbol table
11 # CHECK-DAG: String name: _start, CU vector index: 0
12 # CHECK-DAG: String name: foo, CU vector index: 1
13 # CHECK: Constant pool
14 # CHECK-NEXT: 0(0x0): 0x30000000
15 # CHECK-NEXT: 1(0x8): 0x30000001
17 .globl _start, foo
18 _start:
19 foo:
21 .section .debug_abbrev,"",@progbits
22 .byte 1 # Abbreviation Code
23 .byte 17 # DW_TAG_compile_unit
24 .byte 1 # DW_CHILDREN_yes
25 .ascii "\264B" # DW_AT_GNU_pubnames
26 .byte 25 # DW_FORM_flag_present
27 .byte 0 # EOM(1)
28 .byte 0 # EOM(2)
29 .byte 2 # Abbreviation Code
30 .byte 46 # DW_TAG_subprogram
31 .byte 0 # DW_CHILDREN_no
32 .byte 3 # DW_AT_name
33 .byte 8 # DW_FORM_string
34 .byte 0 # EOM(1)
35 .byte 0 # EOM(2)
36 .byte 0
38 .section .debug_info,"",@progbits
39 .Lcu_begin0:
40 .long .Lcu_end0 - .Lcu_begin0 - 4
41 .short 4 # DWARF version number
42 .long 0 # Offset Into Abbrev. Section
43 .byte 8 # Address Size
44 .Ldie0:
45 .byte 1 # Abbrev [1] DW_TAG_compile_unit
46 .byte 2 # Abbrev [2] DW_TAG_subprogram
47 .asciz "_start" # DW_AT_name
48 .byte 0
49 .byte 0
50 .Lcu_end0:
51 .Lcu_begin1:
52 .long .Lcu_end1 - .Lcu_begin1 - 4
53 .short 4 # DWARF version number
54 .long 0 # Offset Into Abbrev. Section
55 .byte 8 # Address Size
56 .Ldie1:
57 .byte 1 # Abbrev [1] DW_TAG_compile_unit
58 .byte 2 # Abbrev [2] DW_TAG_subprogram
59 .asciz "foo" # DW_AT_name
60 .byte 0
61 .Lcu_end1:
63 # Swap sets to test the case where pubnames are in a
64 # different order than the CUs they refer to.
65 .section .debug_gnu_pubnames,"",@progbits
66 # cuIndex: 1
67 .long .LpubNames_end1 - .LpubNames_begin1
68 .LpubNames_begin1:
69 .short 2 # Version
70 .long .Lcu_begin1 # CU Offset
71 .long .Lcu_end1 - .Lcu_begin1
72 .long .Ldie1 - .Lcu_begin1
73 .byte 48 # Attributes: FUNCTION, EXTERNAL
74 .asciz "foo" # External Name
75 .long 0
76 .LpubNames_end1:
78 # cuIndex: 0
79 .long .LpubNames_end0 - .LpubNames_begin0
80 .LpubNames_begin0:
81 .short 2 # Version
82 .long .Lcu_begin0 # CU Offset
83 .long .Lcu_end0 - .Lcu_begin0
84 .long .Ldie0 - .Lcu_begin0
85 .byte 48 # Attributes: FUNCTION, EXTERNAL
86 .asciz "_start" # External Name
87 .long 0
88 .LpubNames_end0: