[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / DebugInfo / X86 / dwarfdump-debug-names.s
blob009a87325e8b4fe30b0b4abb3661b94697892c36
1 # RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj -o - | llvm-dwarfdump -debug-names - | FileCheck %s
2 .section .debug_str,"MS",@progbits,1
3 .Linfo_string0:
4 .asciz "foo"
5 .Linfo_string1:
6 .asciz "_Z3foov"
7 .Linfo_string2:
8 .asciz "bar"
10 # Fake .debug_info. We just need it for the offsets to two "compile units" and
11 # two "DIEs"
12 .section .debug_info,"",@progbits
13 .Lcu_begin0:
14 .byte 0
15 .Ldie0:
16 .byte 0
17 .Lcu_begin1:
18 .byte 0
19 .Ldie1:
20 .byte 0
22 .section .debug_names,"",@progbits
23 .long .Lnames_end0-.Lnames_start0 # Header: contribution length
24 .Lnames_start0:
25 .short 5 # Header: version
26 .short 0 # Header: padding
27 .long 1 # Header: compilation unit count
28 .long 0 # Header: local type unit count
29 .long 0 # Header: foreign type unit count
30 .long 2 # Header: bucket count
31 .long 2 # Header: name count
32 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
33 .long 0 # Header: augmentation length
34 .long .Lcu_begin0 # Compilation unit 0
35 .long 0 # Bucket 0
36 .long 1 # Bucket 1
37 .long 193491849 # Hash in Bucket 1
38 .long -1257882357 # Hash in Bucket 1
39 .long .Linfo_string0 # String in Bucket 1: foo
40 .long .Linfo_string1 # String in Bucket 1: _Z3foov
41 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 1
42 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1
43 .Lnames_abbrev_start0:
44 .byte 46 # Abbrev code
45 .byte 46 # DW_TAG_subprogram
46 .byte 3 # DW_IDX_die_offset
47 .byte 19 # DW_FORM_ref4
48 .byte 0 # End of abbrev
49 .byte 0 # End of abbrev
50 .byte 0 # End of abbrev list
51 .Lnames_abbrev_end0:
52 .Lnames_entries0:
53 .Lnames0:
54 .byte 46 # Abbrev code
55 .long .Ldie0-.Lcu_begin0 # DW_IDX_die_offset
56 .long 0 # End of list: foo
57 .Lnames1:
58 .byte 46 # Abbrev code
59 .long .Ldie0-.Lcu_begin0 # DW_IDX_die_offset
60 .long 0 # End of list: _Z3foov
61 .p2align 2
62 .Lnames_end0:
64 .long .Lnames_end1-.Lnames_start1 # Header: contribution length
65 .Lnames_start1:
66 .short 5 # Header: version
67 .short 0 # Header: padding
68 .long 1 # Header: compilation unit count
69 .long 0 # Header: local type unit count
70 .long 0 # Header: foreign type unit count
71 .long 1 # Header: bucket count
72 .long 1 # Header: name count
73 .long .Lnames_abbrev_end1-.Lnames_abbrev_start1 # Header: abbreviation table size
74 .long 0 # Header: augmentation length
75 .long .Lcu_begin1 # Compilation unit 0
76 .long 1 # Bucket 0
77 .long 193487034 # Hash in Bucket 0
78 .long .Linfo_string2 # String in Bucket 0: bar
79 .long .Lnames2-.Lnames_entries1 # Offset in Bucket 0
80 .Lnames_abbrev_start1:
81 .byte 52 # Abbrev code
82 .byte 52 # DW_TAG_variable
83 .byte 3 # DW_IDX_die_offset
84 .byte 19 # DW_FORM_ref4
85 .byte 0 # End of abbrev
86 .byte 0 # End of abbrev
87 .byte 0 # End of abbrev list
88 .Lnames_abbrev_end1:
89 .Lnames_entries1:
90 .Lnames2:
91 .byte 52 # Abbrev code
92 .long .Ldie1-.Lcu_begin1 # DW_IDX_die_offset
93 .long 0 # End of list: bar
94 .p2align 2
95 .Lnames_end1:
97 .long 0xffffffff # DWARF64 mark
98 .quad .Lnames_end2-.Lnames_start2 # Length
99 .Lnames_start2:
100 .short 5 # Version
101 .space 2 # Padding
102 .long 1 # CU count
103 .long 1 # Local TU count
104 .long 1 # Foreign TU count
105 .long 1 # Bucket count
106 .long 1 # Name count
107 .long .Lnames_abbrev_end2-.Lnames_abbrev_start2 # Abbreviations table size
108 .long 0 # Augmentation string size
109 .quad 0xcc00cccccccc # CU0 offset
110 .quad 0xaa00aaaaaaaa # Local TU0 offset
111 .quad 0xffffff00ffffffff # Foreign TU2 signature
112 .long 1 # Bucket 0
113 .long 0xb887389 # Hash in Bucket 0
114 .quad .Linfo_string0 # String in Bucket 0: foo
115 .quad .Lnames3-.Lnames_entries2 # Offset in Bucket 0
116 .Lnames_abbrev_start2:
117 .byte 0x01 # Abbrev code
118 .byte 0x24 # DW_TAG_base_type
119 .byte 0x02 # DW_IDX_type_unit
120 .byte 0x06 # DW_FORM_data4
121 .byte 0x05 # DW_IDX_type_hash
122 .byte 0x07 # DW_FORM_data8
123 .byte 0x00 # End of abbrev
124 .byte 0x00 # End of abbrev
125 .byte 0x00 # End of abbrev list
126 .Lnames_abbrev_end2:
127 .Lnames_entries2:
128 .Lnames3:
129 .byte 0x01 # Abbrev code
130 .long 1 # DW_IDX_type_unit
131 .quad 0xff03ffffffff # DW_IDX_type_hash
132 .byte 0x00 # End of list: foo
133 .p2align 2
134 .Lnames_end2:
136 # CHECK: .debug_names contents:
137 # CHECK-NEXT: Name Index @ 0x0 {
138 # CHECK-NEXT: Header {
139 # CHECK-NEXT: Length: 0x60
140 # CHECK-NEXT: Format: DWARF32
141 # CHECK-NEXT: Version: 5
142 # CHECK-NEXT: CU count: 1
143 # CHECK-NEXT: Local TU count: 0
144 # CHECK-NEXT: Foreign TU count: 0
145 # CHECK-NEXT: Bucket count: 2
146 # CHECK-NEXT: Name count: 2
147 # CHECK-NEXT: Abbreviations table size: 0x7
148 # CHECK-NEXT: Augmentation: ''
149 # CHECK-NEXT: }
150 # CHECK-NEXT: Compilation Unit offsets [
151 # CHECK-NEXT: CU[0]: 0x00000000
152 # CHECK-NEXT: ]
153 # CHECK-NEXT: Abbreviations [
154 # CHECK-NEXT: Abbreviation 0x2e {
155 # CHECK-NEXT: Tag: DW_TAG_subprogram
156 # CHECK-NEXT: DW_IDX_die_offset: DW_FORM_ref4
157 # CHECK-NEXT: }
158 # CHECK-NEXT: ]
159 # CHECK-NEXT: Bucket 0 [
160 # CHECK-NEXT: EMPTY
161 # CHECK-NEXT: ]
162 # CHECK-NEXT: Bucket 1 [
163 # CHECK-NEXT: Name 1 {
164 # CHECK-NEXT: Hash: 0xB887389
165 # CHECK-NEXT: String: 0x00000000 "foo"
166 # CHECK-NEXT: Entry @ 0x4f {
167 # CHECK-NEXT: Abbrev: 0x2E
168 # CHECK-NEXT: Tag: DW_TAG_subprogram
169 # CHECK-NEXT: DW_IDX_die_offset: 0x00000001
170 # CHECK-NEXT: }
171 # CHECK-NEXT: }
172 # CHECK-NEXT: Name 2 {
173 # CHECK-NEXT: Hash: 0xB5063D0B
174 # CHECK-NEXT: String: 0x00000004 "_Z3foov"
175 # CHECK-NEXT: Entry @ 0x58 {
176 # CHECK-NEXT: Abbrev: 0x2E
177 # CHECK-NEXT: Tag: DW_TAG_subprogram
178 # CHECK-NEXT: DW_IDX_die_offset: 0x00000001
179 # CHECK-NEXT: }
180 # CHECK-NEXT: }
181 # CHECK-NEXT: ]
182 # CHECK-NEXT: }
183 # CHECK-NEXT: Name Index @ 0x64 {
184 # CHECK-NEXT: Header {
185 # CHECK-NEXT: Length: 0x44
186 # CHECK-NEXT: Format: DWARF32
187 # CHECK-NEXT: Version: 5
188 # CHECK-NEXT: CU count: 1
189 # CHECK-NEXT: Local TU count: 0
190 # CHECK-NEXT: Foreign TU count: 0
191 # CHECK-NEXT: Bucket count: 1
192 # CHECK-NEXT: Name count: 1
193 # CHECK-NEXT: Abbreviations table size: 0x7
194 # CHECK-NEXT: Augmentation: ''
195 # CHECK-NEXT: }
196 # CHECK-NEXT: Compilation Unit offsets [
197 # CHECK-NEXT: CU[0]: 0x00000002
198 # CHECK-NEXT: ]
199 # CHECK-NEXT: Abbreviations [
200 # CHECK-NEXT: Abbreviation 0x34 {
201 # CHECK-NEXT: Tag: DW_TAG_variable
202 # CHECK-NEXT: DW_IDX_die_offset: DW_FORM_ref4
203 # CHECK-NEXT: }
204 # CHECK-NEXT: ]
205 # CHECK-NEXT: Bucket 0 [
206 # CHECK-NEXT: Name 1 {
207 # CHECK-NEXT: Hash: 0xB8860BA
208 # CHECK-NEXT: String: 0x0000000c "bar"
209 # CHECK-NEXT: Entry @ 0xa3 {
210 # CHECK-NEXT: Abbrev: 0x34
211 # CHECK-NEXT: Tag: DW_TAG_variable
212 # CHECK-NEXT: DW_IDX_die_offset: 0x00000001
213 # CHECK-NEXT: }
214 # CHECK-NEXT: }
215 # CHECK-NEXT: ]
216 # CHECK-NEXT: }
217 # CHECK-NEXT: Name Index @ 0xac {
218 # CHECK-NEXT: Header {
219 # CHECK-NEXT: Length: 0x68
220 # CHECK-NEXT: Format: DWARF64
221 # CHECK-NEXT: Version: 5
222 # CHECK-NEXT: CU count: 1
223 # CHECK-NEXT: Local TU count: 1
224 # CHECK-NEXT: Foreign TU count: 1
225 # CHECK-NEXT: Bucket count: 1
226 # CHECK-NEXT: Name count: 1
227 # CHECK-NEXT: Abbreviations table size: 0x9
228 # CHECK-NEXT: Augmentation: ''
229 # CHECK-NEXT: }
230 # CHECK-NEXT: Compilation Unit offsets [
231 # CHECK-NEXT: CU[0]: 0xcc00cccccccc
232 # CHECK-NEXT: ]
233 # CHECK-NEXT: Local Type Unit offsets [
234 # CHECK-NEXT: LocalTU[0]: 0xaa00aaaaaaaa
235 # CHECK-NEXT: ]
236 # CHECK-NEXT: Foreign Type Unit signatures [
237 # CHECK-NEXT: ForeignTU[0]: 0xffffff00ffffffff
238 # CHECK-NEXT: ]
239 # CHECK-NEXT: Abbreviations [
240 # CHECK-NEXT: Abbreviation 0x1 {
241 # CHECK-NEXT: Tag: DW_TAG_base_type
242 # CHECK-NEXT: DW_IDX_type_unit: DW_FORM_data4
243 # CHECK-NEXT: DW_IDX_type_hash: DW_FORM_data8
244 # CHECK-NEXT: }
245 # CHECK-NEXT: ]
246 # CHECK-NEXT: Bucket 0 [
247 # CHECK-NEXT: Name 1 {
248 # CHECK-NEXT: Hash: 0xB887389
249 # CHECK-NEXT: String: 0x00000000 "foo"
250 # CHECK-NEXT: Entry @ 0x111 {
251 # CHECK-NEXT: Abbrev: 0x1
252 # CHECK-NEXT: Tag: DW_TAG_base_type
253 # CHECK-NEXT: DW_IDX_type_unit: 0x00000001
254 # CHECK-NEXT: DW_IDX_type_hash: 0x0000ff03ffffffff
255 # CHECK-NEXT: }
256 # CHECK-NEXT: }
257 # CHECK-NEXT: ]
258 # CHECK-NEXT: }