xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-split-gdb-index-types-helper.s (revision c33536e9c3068ae45f34f6e1c562d51cb8aa702a)
1# struct Foo2a {
2#   char *c1;
3#   char *c2;
4#   char *c3;
5# };
6# struct Foo3 {
7#   char *c1;
8#   char *c2;
9# };
10#
11# int foo() {
12#   Foo2a f;
13#   Foo3 f2;
14#   return 0;
15# }
16	.text
17	.file	"helper.cpp"
18	.globl	_Z3foov                         # -- Begin function _Z3foov
19	.p2align	4, 0x90
20	.type	_Z3foov,@function
21_Z3foov:                                # @_Z3foov
22.Lfunc_begin0:
23	.file	0 "." "helper.cpp" md5 0x650c984f17ca3a4e7785e30e6ca8f130
24	.loc	0 11 0                          # helper.cpp:11:0
25	.cfi_startproc
26# %bb.0:
27	pushq	%rbp
28	.cfi_def_cfa_offset 16
29	.cfi_offset %rbp, -16
30	movq	%rsp, %rbp
31	.cfi_def_cfa_register %rbp
32.Ltmp0:
33	.loc	0 14 3 prologue_end             # helper.cpp:14:3
34	xorl	%eax, %eax
35	.loc	0 14 3 epilogue_begin is_stmt 0 # helper.cpp:14:3
36	popq	%rbp
37	.cfi_def_cfa %rsp, 8
38	retq
39.Ltmp1:
40.Lfunc_end0:
41	.size	_Z3foov, .Lfunc_end0-_Z3foov
42	.cfi_endproc
43                                        # -- End function
44	.section	.debug_info.dwo,"e",@progbits
45	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
46.Ldebug_info_dwo_start0:
47	.short	5                               # DWARF version number
48	.byte	6                               # DWARF Unit Type
49	.byte	8                               # Address Size (in bytes)
50	.long	0                               # Offset Into Abbrev. Section
51	.quad	1175092228111723119             # Type Signature
52	.long	31                              # Type DIE Offset
53	.byte	1                               # Abbrev [1] 0x18:0x33 DW_TAG_type_unit
54	.short	33                              # DW_AT_language
55	.long	0                               # DW_AT_stmt_list
56	.byte	2                               # Abbrev [2] 0x1f:0x22 DW_TAG_structure_type
57	.byte	5                               # DW_AT_calling_convention
58	.byte	8                               # DW_AT_name
59	.byte	24                              # DW_AT_byte_size
60	.byte	0                               # DW_AT_decl_file
61	.byte	1                               # DW_AT_decl_line
62	.byte	3                               # Abbrev [3] 0x25:0x9 DW_TAG_member
63	.byte	4                               # DW_AT_name
64	.long	65                              # DW_AT_type
65	.byte	0                               # DW_AT_decl_file
66	.byte	2                               # DW_AT_decl_line
67	.byte	0                               # DW_AT_data_member_location
68	.byte	3                               # Abbrev [3] 0x2e:0x9 DW_TAG_member
69	.byte	6                               # DW_AT_name
70	.long	65                              # DW_AT_type
71	.byte	0                               # DW_AT_decl_file
72	.byte	3                               # DW_AT_decl_line
73	.byte	8                               # DW_AT_data_member_location
74	.byte	3                               # Abbrev [3] 0x37:0x9 DW_TAG_member
75	.byte	7                               # DW_AT_name
76	.long	65                              # DW_AT_type
77	.byte	0                               # DW_AT_decl_file
78	.byte	4                               # DW_AT_decl_line
79	.byte	16                              # DW_AT_data_member_location
80	.byte	0                               # End Of Children Mark
81	.byte	4                               # Abbrev [4] 0x41:0x5 DW_TAG_pointer_type
82	.long	70                              # DW_AT_type
83	.byte	5                               # Abbrev [5] 0x46:0x4 DW_TAG_base_type
84	.byte	5                               # DW_AT_name
85	.byte	6                               # DW_AT_encoding
86	.byte	1                               # DW_AT_byte_size
87	.byte	0                               # End Of Children Mark
88.Ldebug_info_dwo_end0:
89	.long	.Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit
90.Ldebug_info_dwo_start1:
91	.short	5                               # DWARF version number
92	.byte	6                               # DWARF Unit Type
93	.byte	8                               # Address Size (in bytes)
94	.long	0                               # Offset Into Abbrev. Section
95	.quad	-5451594423976726044            # Type Signature
96	.long	31                              # Type DIE Offset
97	.byte	1                               # Abbrev [1] 0x18:0x2a DW_TAG_type_unit
98	.short	33                              # DW_AT_language
99	.long	0                               # DW_AT_stmt_list
100	.byte	2                               # Abbrev [2] 0x1f:0x19 DW_TAG_structure_type
101	.byte	5                               # DW_AT_calling_convention
102	.byte	10                              # DW_AT_name
103	.byte	16                              # DW_AT_byte_size
104	.byte	0                               # DW_AT_decl_file
105	.byte	6                               # DW_AT_decl_line
106	.byte	3                               # Abbrev [3] 0x25:0x9 DW_TAG_member
107	.byte	4                               # DW_AT_name
108	.long	56                              # DW_AT_type
109	.byte	0                               # DW_AT_decl_file
110	.byte	7                               # DW_AT_decl_line
111	.byte	0                               # DW_AT_data_member_location
112	.byte	3                               # Abbrev [3] 0x2e:0x9 DW_TAG_member
113	.byte	6                               # DW_AT_name
114	.long	56                              # DW_AT_type
115	.byte	0                               # DW_AT_decl_file
116	.byte	8                               # DW_AT_decl_line
117	.byte	8                               # DW_AT_data_member_location
118	.byte	0                               # End Of Children Mark
119	.byte	4                               # Abbrev [4] 0x38:0x5 DW_TAG_pointer_type
120	.long	61                              # DW_AT_type
121	.byte	5                               # Abbrev [5] 0x3d:0x4 DW_TAG_base_type
122	.byte	5                               # DW_AT_name
123	.byte	6                               # DW_AT_encoding
124	.byte	1                               # DW_AT_byte_size
125	.byte	0                               # End Of Children Mark
126.Ldebug_info_dwo_end1:
127	.section	.debug_abbrev,"",@progbits
128	.byte	1                               # Abbreviation Code
129	.byte	74                              # DW_TAG_skeleton_unit
130	.byte	0                               # DW_CHILDREN_no
131	.byte	16                              # DW_AT_stmt_list
132	.byte	23                              # DW_FORM_sec_offset
133	.byte	114                             # DW_AT_str_offsets_base
134	.byte	23                              # DW_FORM_sec_offset
135	.byte	27                              # DW_AT_comp_dir
136	.byte	37                              # DW_FORM_strx1
137	.ascii	"\264B"                         # DW_AT_GNU_pubnames
138	.byte	25                              # DW_FORM_flag_present
139	.byte	118                             # DW_AT_dwo_name
140	.byte	37                              # DW_FORM_strx1
141	.byte	17                              # DW_AT_low_pc
142	.byte	27                              # DW_FORM_addrx
143	.byte	18                              # DW_AT_high_pc
144	.byte	6                               # DW_FORM_data4
145	.byte	115                             # DW_AT_addr_base
146	.byte	23                              # DW_FORM_sec_offset
147	.byte	0                               # EOM(1)
148	.byte	0                               # EOM(2)
149	.byte	0                               # EOM(3)
150	.section	.debug_info,"",@progbits
151.Lcu_begin0:
152	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
153.Ldebug_info_start0:
154	.short	5                               # DWARF version number
155	.byte	4                               # DWARF Unit Type
156	.byte	8                               # Address Size (in bytes)
157	.long	.debug_abbrev                   # Offset Into Abbrev. Section
158	.quad	8590827077411666803
159	.byte	1                               # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
160	.long	.Lline_table_start0             # DW_AT_stmt_list
161	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
162	.byte	0                               # DW_AT_comp_dir
163                                        # DW_AT_GNU_pubnames
164	.byte	1                               # DW_AT_dwo_name
165	.byte	0                               # DW_AT_low_pc
166	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
167	.long	.Laddr_table_base0              # DW_AT_addr_base
168.Ldebug_info_end0:
169	.section	.debug_str_offsets,"",@progbits
170	.long	12                              # Length of String Offsets Set
171	.short	5
172	.short	0
173.Lstr_offsets_base0:
174	.section	.debug_str,"MS",@progbits,1
175.Lskel_string0:
176	.asciz	"." # string offset=0
177.Lskel_string1:
178	.asciz	"helper.dwo"                    # string offset=68
179	.section	.debug_str_offsets,"",@progbits
180	.long	.Lskel_string0
181	.long	.Lskel_string1
182	.section	.debug_str_offsets.dwo,"e",@progbits
183	.long	60                              # Length of String Offsets Set
184	.short	5
185	.short	0
186	.section	.debug_str.dwo,"eMS",@progbits,1
187.Linfo_string0:
188	.asciz	"_Z3foov"                       # string offset=0
189.Linfo_string1:
190	.asciz	"foo"                           # string offset=8
191.Linfo_string2:
192	.asciz	"int"                           # string offset=12
193.Linfo_string3:
194	.asciz	"f"                             # string offset=16
195.Linfo_string4:
196	.asciz	"c1"                            # string offset=18
197.Linfo_string5:
198	.asciz	"char"                          # string offset=21
199.Linfo_string6:
200	.asciz	"c2"                            # string offset=26
201.Linfo_string7:
202	.asciz	"c3"                            # string offset=29
203.Linfo_string8:
204	.asciz	"Foo2a"                         # string offset=32
205.Linfo_string9:
206	.asciz	"f2"                            # string offset=38
207.Linfo_string10:
208	.asciz	"Foo3"                          # string offset=41
209.Linfo_string11:
210	.asciz	"clang version 15.0.0" # string offset=46
211.Linfo_string12:
212	.asciz	"helper.cpp"                    # string offset=192
213.Linfo_string13:
214	.asciz	"helper.dwo"                    # string offset=203
215	.section	.debug_str_offsets.dwo,"e",@progbits
216	.long	0
217	.long	8
218	.long	12
219	.long	16
220	.long	18
221	.long	21
222	.long	26
223	.long	29
224	.long	32
225	.long	38
226	.long	41
227	.long	46
228	.long	192
229	.long	203
230	.section	.debug_info.dwo,"e",@progbits
231	.long	.Ldebug_info_dwo_end2-.Ldebug_info_dwo_start2 # Length of Unit
232.Ldebug_info_dwo_start2:
233	.short	5                               # DWARF version number
234	.byte	5                               # DWARF Unit Type
235	.byte	8                               # Address Size (in bytes)
236	.long	0                               # Offset Into Abbrev. Section
237	.quad	8590827077411666803
238	.byte	6                               # Abbrev [6] 0x14:0x44 DW_TAG_compile_unit
239	.byte	11                              # DW_AT_producer
240	.short	33                              # DW_AT_language
241	.byte	12                              # DW_AT_name
242	.byte	13                              # DW_AT_dwo_name
243	.byte	7                               # Abbrev [7] 0x1a:0x27 DW_TAG_subprogram
244	.byte	0                               # DW_AT_low_pc
245	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
246	.byte	1                               # DW_AT_frame_base
247	.byte	86
248	.byte	0                               # DW_AT_linkage_name
249	.byte	1                               # DW_AT_name
250	.byte	0                               # DW_AT_decl_file
251	.byte	11                              # DW_AT_decl_line
252	.long	65                              # DW_AT_type
253                                        # DW_AT_external
254	.byte	8                               # Abbrev [8] 0x2a:0xb DW_TAG_variable
255	.byte	2                               # DW_AT_location
256	.byte	145
257	.byte	104
258	.byte	3                               # DW_AT_name
259	.byte	0                               # DW_AT_decl_file
260	.byte	12                              # DW_AT_decl_line
261	.long	69                              # DW_AT_type
262	.byte	8                               # Abbrev [8] 0x35:0xb DW_TAG_variable
263	.byte	2                               # DW_AT_location
264	.byte	145
265	.byte	88
266	.byte	9                               # DW_AT_name
267	.byte	0                               # DW_AT_decl_file
268	.byte	13                              # DW_AT_decl_line
269	.long	78                              # DW_AT_type
270	.byte	0                               # End Of Children Mark
271	.byte	5                               # Abbrev [5] 0x41:0x4 DW_TAG_base_type
272	.byte	2                               # DW_AT_name
273	.byte	5                               # DW_AT_encoding
274	.byte	4                               # DW_AT_byte_size
275	.byte	9                               # Abbrev [9] 0x45:0x9 DW_TAG_structure_type
276                                        # DW_AT_declaration
277	.quad	1175092228111723119             # DW_AT_signature
278	.byte	9                               # Abbrev [9] 0x4e:0x9 DW_TAG_structure_type
279                                        # DW_AT_declaration
280	.quad	-5451594423976726044            # DW_AT_signature
281	.byte	0                               # End Of Children Mark
282.Ldebug_info_dwo_end2:
283	.section	.debug_abbrev.dwo,"e",@progbits
284	.byte	1                               # Abbreviation Code
285	.byte	65                              # DW_TAG_type_unit
286	.byte	1                               # DW_CHILDREN_yes
287	.byte	19                              # DW_AT_language
288	.byte	5                               # DW_FORM_data2
289	.byte	16                              # DW_AT_stmt_list
290	.byte	23                              # DW_FORM_sec_offset
291	.byte	0                               # EOM(1)
292	.byte	0                               # EOM(2)
293	.byte	2                               # Abbreviation Code
294	.byte	19                              # DW_TAG_structure_type
295	.byte	1                               # DW_CHILDREN_yes
296	.byte	54                              # DW_AT_calling_convention
297	.byte	11                              # DW_FORM_data1
298	.byte	3                               # DW_AT_name
299	.byte	37                              # DW_FORM_strx1
300	.byte	11                              # DW_AT_byte_size
301	.byte	11                              # DW_FORM_data1
302	.byte	58                              # DW_AT_decl_file
303	.byte	11                              # DW_FORM_data1
304	.byte	59                              # DW_AT_decl_line
305	.byte	11                              # DW_FORM_data1
306	.byte	0                               # EOM(1)
307	.byte	0                               # EOM(2)
308	.byte	3                               # Abbreviation Code
309	.byte	13                              # DW_TAG_member
310	.byte	0                               # DW_CHILDREN_no
311	.byte	3                               # DW_AT_name
312	.byte	37                              # DW_FORM_strx1
313	.byte	73                              # DW_AT_type
314	.byte	19                              # DW_FORM_ref4
315	.byte	58                              # DW_AT_decl_file
316	.byte	11                              # DW_FORM_data1
317	.byte	59                              # DW_AT_decl_line
318	.byte	11                              # DW_FORM_data1
319	.byte	56                              # DW_AT_data_member_location
320	.byte	11                              # DW_FORM_data1
321	.byte	0                               # EOM(1)
322	.byte	0                               # EOM(2)
323	.byte	4                               # Abbreviation Code
324	.byte	15                              # DW_TAG_pointer_type
325	.byte	0                               # DW_CHILDREN_no
326	.byte	73                              # DW_AT_type
327	.byte	19                              # DW_FORM_ref4
328	.byte	0                               # EOM(1)
329	.byte	0                               # EOM(2)
330	.byte	5                               # Abbreviation Code
331	.byte	36                              # DW_TAG_base_type
332	.byte	0                               # DW_CHILDREN_no
333	.byte	3                               # DW_AT_name
334	.byte	37                              # DW_FORM_strx1
335	.byte	62                              # DW_AT_encoding
336	.byte	11                              # DW_FORM_data1
337	.byte	11                              # DW_AT_byte_size
338	.byte	11                              # DW_FORM_data1
339	.byte	0                               # EOM(1)
340	.byte	0                               # EOM(2)
341	.byte	6                               # Abbreviation Code
342	.byte	17                              # DW_TAG_compile_unit
343	.byte	1                               # DW_CHILDREN_yes
344	.byte	37                              # DW_AT_producer
345	.byte	37                              # DW_FORM_strx1
346	.byte	19                              # DW_AT_language
347	.byte	5                               # DW_FORM_data2
348	.byte	3                               # DW_AT_name
349	.byte	37                              # DW_FORM_strx1
350	.byte	118                             # DW_AT_dwo_name
351	.byte	37                              # DW_FORM_strx1
352	.byte	0                               # EOM(1)
353	.byte	0                               # EOM(2)
354	.byte	7                               # Abbreviation Code
355	.byte	46                              # DW_TAG_subprogram
356	.byte	1                               # DW_CHILDREN_yes
357	.byte	17                              # DW_AT_low_pc
358	.byte	27                              # DW_FORM_addrx
359	.byte	18                              # DW_AT_high_pc
360	.byte	6                               # DW_FORM_data4
361	.byte	64                              # DW_AT_frame_base
362	.byte	24                              # DW_FORM_exprloc
363	.byte	110                             # DW_AT_linkage_name
364	.byte	37                              # DW_FORM_strx1
365	.byte	3                               # DW_AT_name
366	.byte	37                              # DW_FORM_strx1
367	.byte	58                              # DW_AT_decl_file
368	.byte	11                              # DW_FORM_data1
369	.byte	59                              # DW_AT_decl_line
370	.byte	11                              # DW_FORM_data1
371	.byte	73                              # DW_AT_type
372	.byte	19                              # DW_FORM_ref4
373	.byte	63                              # DW_AT_external
374	.byte	25                              # DW_FORM_flag_present
375	.byte	0                               # EOM(1)
376	.byte	0                               # EOM(2)
377	.byte	8                               # Abbreviation Code
378	.byte	52                              # DW_TAG_variable
379	.byte	0                               # DW_CHILDREN_no
380	.byte	2                               # DW_AT_location
381	.byte	24                              # DW_FORM_exprloc
382	.byte	3                               # DW_AT_name
383	.byte	37                              # DW_FORM_strx1
384	.byte	58                              # DW_AT_decl_file
385	.byte	11                              # DW_FORM_data1
386	.byte	59                              # DW_AT_decl_line
387	.byte	11                              # DW_FORM_data1
388	.byte	73                              # DW_AT_type
389	.byte	19                              # DW_FORM_ref4
390	.byte	0                               # EOM(1)
391	.byte	0                               # EOM(2)
392	.byte	9                               # Abbreviation Code
393	.byte	19                              # DW_TAG_structure_type
394	.byte	0                               # DW_CHILDREN_no
395	.byte	60                              # DW_AT_declaration
396	.byte	25                              # DW_FORM_flag_present
397	.byte	105                             # DW_AT_signature
398	.byte	32                              # DW_FORM_ref_sig8
399	.byte	0                               # EOM(1)
400	.byte	0                               # EOM(2)
401	.byte	0                               # EOM(3)
402	.section	.debug_line.dwo,"e",@progbits
403.Ltmp2:
404	.long	.Ldebug_line_end0-.Ldebug_line_start0 # unit length
405.Ldebug_line_start0:
406	.short	5
407	.byte	8
408	.byte	0
409	.long	.Lprologue_end0-.Lprologue_start0
410.Lprologue_start0:
411	.byte	1
412	.byte	1
413	.byte	1
414	.byte	-5
415	.byte	14
416	.byte	1
417	.byte	1
418	.byte	1
419	.byte	8
420	.byte	1
421	.ascii	"dwarf5-types-index-split-test"
422	.byte	0
423	.byte	3
424	.byte	1
425	.byte	8
426	.byte	2
427	.byte	15
428	.byte	5
429	.byte	30
430	.byte	1
431	.ascii	"helper.cpp"
432	.byte	0
433	.byte	0
434	.byte	0x65, 0x0c, 0x98, 0x4f
435	.byte	0x17, 0xca, 0x3a, 0x4e
436	.byte	0x77, 0x85, 0xe3, 0x0e
437	.byte	0x6c, 0xa8, 0xf1, 0x30
438.Lprologue_end0:
439.Ldebug_line_end0:
440	.section	.debug_addr,"",@progbits
441	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
442.Ldebug_addr_start0:
443	.short	5                               # DWARF version number
444	.byte	8                               # Address size
445	.byte	0                               # Segment selector size
446.Laddr_table_base0:
447	.quad	.Lfunc_begin0
448.Ldebug_addr_end0:
449	.section	.debug_gnu_pubnames,"",@progbits
450	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
451.LpubNames_start0:
452	.short	2                               # DWARF Version
453	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
454	.long	40                              # Compilation Unit Length
455	.long	26                              # DIE offset
456	.byte	48                              # Attributes: FUNCTION, EXTERNAL
457	.asciz	"foo"                           # External Name
458	.long	0                               # End Mark
459.LpubNames_end0:
460	.section	.debug_gnu_pubtypes,"",@progbits
461	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
462.LpubTypes_start0:
463	.short	2                               # DWARF Version
464	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
465	.long	40                              # Compilation Unit Length
466	.long	69                              # DIE offset
467	.byte	16                              # Attributes: TYPE, EXTERNAL
468	.asciz	"Foo2a"                         # External Name
469	.long	65                              # DIE offset
470	.byte	144                             # Attributes: TYPE, STATIC
471	.asciz	"int"                           # External Name
472	.long	20                              # DIE offset
473	.byte	16                              # Attributes: TYPE, EXTERNAL
474	.asciz	"char"                          # External Name
475	.long	78                              # DIE offset
476	.byte	16                              # Attributes: TYPE, EXTERNAL
477	.asciz	"Foo3"                          # External Name
478	.long	0                               # End Mark
479.LpubTypes_end0:
480	.ident	"clang version 15.0.0"
481	.section	".note.GNU-stack","",@progbits
482	.addrsig
483	.section	.debug_line,"",@progbits
484.Lline_table_start0:
485