xref: /llvm-project/bolt/test/X86/Inputs/dwarf4-types-dwarf5-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
17	.text
18	.file	"helper.cpp"
19	.globl	_Z3foov                         # -- Begin function _Z3foov
20	.p2align	4, 0x90
21	.type	_Z3foov,@function
22_Z3foov:                                # @_Z3foov
23.Lfunc_begin0:
24	.file	0 "/dwarf4-types-dwarf5-types-test" "helper.cpp" md5 0x650c984f17ca3a4e7785e30e6ca8f130
25	.loc	0 11 0                          # helper.cpp:11:0
26	.cfi_startproc
27# %bb.0:
28	pushq	%rbp
29	.cfi_def_cfa_offset 16
30	.cfi_offset %rbp, -16
31	movq	%rsp, %rbp
32	.cfi_def_cfa_register %rbp
33.Ltmp0:
34	.loc	0 14 3 prologue_end             # helper.cpp:14:3
35	xorl	%eax, %eax
36	.loc	0 14 3 epilogue_begin is_stmt 0 # helper.cpp:14:3
37	popq	%rbp
38	.cfi_def_cfa %rsp, 8
39	retq
40.Ltmp1:
41.Lfunc_end0:
42	.size	_Z3foov, .Lfunc_end0-_Z3foov
43	.cfi_endproc
44                                        # -- End function
45	.section	.debug_info,"G",@progbits,1175092228111723119,comdat
46	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
47.Ldebug_info_start0:
48	.short	5                               # DWARF version number
49	.byte	2                               # DWARF Unit Type
50	.byte	8                               # Address Size (in bytes)
51	.long	.debug_abbrev                   # Offset Into Abbrev. Section
52	.quad	1175092228111723119             # Type Signature
53	.long	35                              # Type DIE Offset
54	.byte	1                               # Abbrev [1] 0x18:0x37 DW_TAG_type_unit
55	.short	33                              # DW_AT_language
56	.long	.Lline_table_start0             # DW_AT_stmt_list
57	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
58	.byte	2                               # Abbrev [2] 0x23:0x22 DW_TAG_structure_type
59	.byte	5                               # DW_AT_calling_convention
60	.byte	11                              # DW_AT_name
61	.byte	24                              # DW_AT_byte_size
62	.byte	0                               # DW_AT_decl_file
63	.byte	1                               # DW_AT_decl_line
64	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
65	.byte	7                               # DW_AT_name
66	.long	69                              # DW_AT_type
67	.byte	0                               # DW_AT_decl_file
68	.byte	2                               # DW_AT_decl_line
69	.byte	0                               # DW_AT_data_member_location
70	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
71	.byte	9                               # DW_AT_name
72	.long	69                              # DW_AT_type
73	.byte	0                               # DW_AT_decl_file
74	.byte	3                               # DW_AT_decl_line
75	.byte	8                               # DW_AT_data_member_location
76	.byte	3                               # Abbrev [3] 0x3b:0x9 DW_TAG_member
77	.byte	10                              # DW_AT_name
78	.long	69                              # DW_AT_type
79	.byte	0                               # DW_AT_decl_file
80	.byte	4                               # DW_AT_decl_line
81	.byte	16                              # DW_AT_data_member_location
82	.byte	0                               # End Of Children Mark
83	.byte	4                               # Abbrev [4] 0x45:0x5 DW_TAG_pointer_type
84	.long	74                              # DW_AT_type
85	.byte	5                               # Abbrev [5] 0x4a:0x4 DW_TAG_base_type
86	.byte	8                               # DW_AT_name
87	.byte	6                               # DW_AT_encoding
88	.byte	1                               # DW_AT_byte_size
89	.byte	0                               # End Of Children Mark
90.Ldebug_info_end0:
91	.section	.debug_info,"G",@progbits,12995149649732825572,comdat
92	.long	.Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
93.Ldebug_info_start1:
94	.short	5                               # DWARF version number
95	.byte	2                               # DWARF Unit Type
96	.byte	8                               # Address Size (in bytes)
97	.long	.debug_abbrev                   # Offset Into Abbrev. Section
98	.quad	-5451594423976726044            # Type Signature
99	.long	35                              # Type DIE Offset
100	.byte	1                               # Abbrev [1] 0x18:0x2e DW_TAG_type_unit
101	.short	33                              # DW_AT_language
102	.long	.Lline_table_start0             # DW_AT_stmt_list
103	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
104	.byte	2                               # Abbrev [2] 0x23:0x19 DW_TAG_structure_type
105	.byte	5                               # DW_AT_calling_convention
106	.byte	13                              # DW_AT_name
107	.byte	16                              # DW_AT_byte_size
108	.byte	0                               # DW_AT_decl_file
109	.byte	6                               # DW_AT_decl_line
110	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
111	.byte	7                               # DW_AT_name
112	.long	60                              # DW_AT_type
113	.byte	0                               # DW_AT_decl_file
114	.byte	7                               # DW_AT_decl_line
115	.byte	0                               # DW_AT_data_member_location
116	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
117	.byte	9                               # DW_AT_name
118	.long	60                              # DW_AT_type
119	.byte	0                               # DW_AT_decl_file
120	.byte	8                               # DW_AT_decl_line
121	.byte	8                               # DW_AT_data_member_location
122	.byte	0                               # End Of Children Mark
123	.byte	4                               # Abbrev [4] 0x3c:0x5 DW_TAG_pointer_type
124	.long	65                              # DW_AT_type
125	.byte	5                               # Abbrev [5] 0x41:0x4 DW_TAG_base_type
126	.byte	8                               # DW_AT_name
127	.byte	6                               # DW_AT_encoding
128	.byte	1                               # DW_AT_byte_size
129	.byte	0                               # End Of Children Mark
130.Ldebug_info_end1:
131	.section	.debug_abbrev,"",@progbits
132	.byte	1                               # Abbreviation Code
133	.byte	65                              # DW_TAG_type_unit
134	.byte	1                               # DW_CHILDREN_yes
135	.byte	19                              # DW_AT_language
136	.byte	5                               # DW_FORM_data2
137	.byte	16                              # DW_AT_stmt_list
138	.byte	23                              # DW_FORM_sec_offset
139	.byte	114                             # DW_AT_str_offsets_base
140	.byte	23                              # DW_FORM_sec_offset
141	.byte	0                               # EOM(1)
142	.byte	0                               # EOM(2)
143	.byte	2                               # Abbreviation Code
144	.byte	19                              # DW_TAG_structure_type
145	.byte	1                               # DW_CHILDREN_yes
146	.byte	54                              # DW_AT_calling_convention
147	.byte	11                              # DW_FORM_data1
148	.byte	3                               # DW_AT_name
149	.byte	37                              # DW_FORM_strx1
150	.byte	11                              # DW_AT_byte_size
151	.byte	11                              # DW_FORM_data1
152	.byte	58                              # DW_AT_decl_file
153	.byte	11                              # DW_FORM_data1
154	.byte	59                              # DW_AT_decl_line
155	.byte	11                              # DW_FORM_data1
156	.byte	0                               # EOM(1)
157	.byte	0                               # EOM(2)
158	.byte	3                               # Abbreviation Code
159	.byte	13                              # DW_TAG_member
160	.byte	0                               # DW_CHILDREN_no
161	.byte	3                               # DW_AT_name
162	.byte	37                              # DW_FORM_strx1
163	.byte	73                              # DW_AT_type
164	.byte	19                              # DW_FORM_ref4
165	.byte	58                              # DW_AT_decl_file
166	.byte	11                              # DW_FORM_data1
167	.byte	59                              # DW_AT_decl_line
168	.byte	11                              # DW_FORM_data1
169	.byte	56                              # DW_AT_data_member_location
170	.byte	11                              # DW_FORM_data1
171	.byte	0                               # EOM(1)
172	.byte	0                               # EOM(2)
173	.byte	4                               # Abbreviation Code
174	.byte	15                              # DW_TAG_pointer_type
175	.byte	0                               # DW_CHILDREN_no
176	.byte	73                              # DW_AT_type
177	.byte	19                              # DW_FORM_ref4
178	.byte	0                               # EOM(1)
179	.byte	0                               # EOM(2)
180	.byte	5                               # Abbreviation Code
181	.byte	36                              # DW_TAG_base_type
182	.byte	0                               # DW_CHILDREN_no
183	.byte	3                               # DW_AT_name
184	.byte	37                              # DW_FORM_strx1
185	.byte	62                              # DW_AT_encoding
186	.byte	11                              # DW_FORM_data1
187	.byte	11                              # DW_AT_byte_size
188	.byte	11                              # DW_FORM_data1
189	.byte	0                               # EOM(1)
190	.byte	0                               # EOM(2)
191	.byte	6                               # Abbreviation Code
192	.byte	17                              # DW_TAG_compile_unit
193	.byte	1                               # DW_CHILDREN_yes
194	.byte	37                              # DW_AT_producer
195	.byte	37                              # DW_FORM_strx1
196	.byte	19                              # DW_AT_language
197	.byte	5                               # DW_FORM_data2
198	.byte	3                               # DW_AT_name
199	.byte	37                              # DW_FORM_strx1
200	.byte	114                             # DW_AT_str_offsets_base
201	.byte	23                              # DW_FORM_sec_offset
202	.byte	16                              # DW_AT_stmt_list
203	.byte	23                              # DW_FORM_sec_offset
204	.byte	27                              # DW_AT_comp_dir
205	.byte	37                              # DW_FORM_strx1
206	.byte	17                              # DW_AT_low_pc
207	.byte	27                              # DW_FORM_addrx
208	.byte	18                              # DW_AT_high_pc
209	.byte	6                               # DW_FORM_data4
210	.byte	115                             # DW_AT_addr_base
211	.byte	23                              # DW_FORM_sec_offset
212	.byte	0                               # EOM(1)
213	.byte	0                               # EOM(2)
214	.byte	7                               # Abbreviation Code
215	.byte	46                              # DW_TAG_subprogram
216	.byte	1                               # DW_CHILDREN_yes
217	.byte	17                              # DW_AT_low_pc
218	.byte	27                              # DW_FORM_addrx
219	.byte	18                              # DW_AT_high_pc
220	.byte	6                               # DW_FORM_data4
221	.byte	64                              # DW_AT_frame_base
222	.byte	24                              # DW_FORM_exprloc
223	.byte	110                             # DW_AT_linkage_name
224	.byte	37                              # DW_FORM_strx1
225	.byte	3                               # DW_AT_name
226	.byte	37                              # DW_FORM_strx1
227	.byte	58                              # DW_AT_decl_file
228	.byte	11                              # DW_FORM_data1
229	.byte	59                              # DW_AT_decl_line
230	.byte	11                              # DW_FORM_data1
231	.byte	73                              # DW_AT_type
232	.byte	19                              # DW_FORM_ref4
233	.byte	63                              # DW_AT_external
234	.byte	25                              # DW_FORM_flag_present
235	.byte	0                               # EOM(1)
236	.byte	0                               # EOM(2)
237	.byte	8                               # Abbreviation Code
238	.byte	52                              # DW_TAG_variable
239	.byte	0                               # DW_CHILDREN_no
240	.byte	2                               # DW_AT_location
241	.byte	24                              # DW_FORM_exprloc
242	.byte	3                               # DW_AT_name
243	.byte	37                              # DW_FORM_strx1
244	.byte	58                              # DW_AT_decl_file
245	.byte	11                              # DW_FORM_data1
246	.byte	59                              # DW_AT_decl_line
247	.byte	11                              # DW_FORM_data1
248	.byte	73                              # DW_AT_type
249	.byte	19                              # DW_FORM_ref4
250	.byte	0                               # EOM(1)
251	.byte	0                               # EOM(2)
252	.byte	9                               # Abbreviation Code
253	.byte	19                              # DW_TAG_structure_type
254	.byte	0                               # DW_CHILDREN_no
255	.byte	60                              # DW_AT_declaration
256	.byte	25                              # DW_FORM_flag_present
257	.byte	105                             # DW_AT_signature
258	.byte	32                              # DW_FORM_ref_sig8
259	.byte	0                               # EOM(1)
260	.byte	0                               # EOM(2)
261	.byte	0                               # EOM(3)
262	.section	.debug_info,"",@progbits
263.Lcu_begin0:
264	.long	.Ldebug_info_end2-.Ldebug_info_start2 # Length of Unit
265.Ldebug_info_start2:
266	.short	5                               # DWARF version number
267	.byte	1                               # DWARF Unit Type
268	.byte	8                               # Address Size (in bytes)
269	.long	.debug_abbrev                   # Offset Into Abbrev. Section
270	.byte	6                               # Abbrev [6] 0xc:0x55 DW_TAG_compile_unit
271	.byte	0                               # DW_AT_producer
272	.short	33                              # DW_AT_language
273	.byte	1                               # DW_AT_name
274	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
275	.long	.Lline_table_start0             # DW_AT_stmt_list
276	.byte	2                               # DW_AT_comp_dir
277	.byte	0                               # DW_AT_low_pc
278	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
279	.long	.Laddr_table_base0              # DW_AT_addr_base
280	.byte	7                               # Abbrev [7] 0x23:0x27 DW_TAG_subprogram
281	.byte	0                               # DW_AT_low_pc
282	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
283	.byte	1                               # DW_AT_frame_base
284	.byte	86
285	.byte	3                               # DW_AT_linkage_name
286	.byte	4                               # DW_AT_name
287	.byte	0                               # DW_AT_decl_file
288	.byte	11                              # DW_AT_decl_line
289	.long	74                              # DW_AT_type
290                                        # DW_AT_external
291	.byte	8                               # Abbrev [8] 0x33:0xb DW_TAG_variable
292	.byte	2                               # DW_AT_location
293	.byte	145
294	.byte	104
295	.byte	6                               # DW_AT_name
296	.byte	0                               # DW_AT_decl_file
297	.byte	12                              # DW_AT_decl_line
298	.long	78                              # DW_AT_type
299	.byte	8                               # Abbrev [8] 0x3e:0xb DW_TAG_variable
300	.byte	2                               # DW_AT_location
301	.byte	145
302	.byte	88
303	.byte	12                              # DW_AT_name
304	.byte	0                               # DW_AT_decl_file
305	.byte	13                              # DW_AT_decl_line
306	.long	87                              # DW_AT_type
307	.byte	0                               # End Of Children Mark
308	.byte	5                               # Abbrev [5] 0x4a:0x4 DW_TAG_base_type
309	.byte	5                               # DW_AT_name
310	.byte	5                               # DW_AT_encoding
311	.byte	4                               # DW_AT_byte_size
312	.byte	9                               # Abbrev [9] 0x4e:0x9 DW_TAG_structure_type
313                                        # DW_AT_declaration
314	.quad	1175092228111723119             # DW_AT_signature
315	.byte	9                               # Abbrev [9] 0x57:0x9 DW_TAG_structure_type
316                                        # DW_AT_declaration
317	.quad	-5451594423976726044            # DW_AT_signature
318	.byte	0                               # End Of Children Mark
319.Ldebug_info_end2:
320	.section	.debug_str_offsets,"",@progbits
321	.long	60                              # Length of String Offsets Set
322	.short	5
323	.short	0
324.Lstr_offsets_base0:
325	.section	.debug_str,"MS",@progbits,1
326.Linfo_string0:
327	.asciz	"clang version 15.0.0" # string offset=0
328.Linfo_string1:
329	.asciz	"helper.cpp"                    # string offset=146
330.Linfo_string2:
331	.asciz	"/dwarf4-types-dwarf5-types-test" # string offset=157
332.Linfo_string3:
333	.asciz	"_Z3foov"                       # string offset=226
334.Linfo_string4:
335	.asciz	"foo"                           # string offset=234
336.Linfo_string5:
337	.asciz	"int"                           # string offset=238
338.Linfo_string6:
339	.asciz	"f"                             # string offset=242
340.Linfo_string7:
341	.asciz	"c1"                            # string offset=244
342.Linfo_string8:
343	.asciz	"char"                          # string offset=247
344.Linfo_string9:
345	.asciz	"c2"                            # string offset=252
346.Linfo_string10:
347	.asciz	"c3"                            # string offset=255
348.Linfo_string11:
349	.asciz	"Foo2a"                         # string offset=258
350.Linfo_string12:
351	.asciz	"f2"                            # string offset=264
352.Linfo_string13:
353	.asciz	"Foo3"                          # string offset=267
354	.section	.debug_str_offsets,"",@progbits
355	.long	.Linfo_string0
356	.long	.Linfo_string1
357	.long	.Linfo_string2
358	.long	.Linfo_string3
359	.long	.Linfo_string4
360	.long	.Linfo_string5
361	.long	.Linfo_string6
362	.long	.Linfo_string7
363	.long	.Linfo_string8
364	.long	.Linfo_string9
365	.long	.Linfo_string10
366	.long	.Linfo_string11
367	.long	.Linfo_string12
368	.long	.Linfo_string13
369	.section	.debug_addr,"",@progbits
370	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
371.Ldebug_addr_start0:
372	.short	5                               # DWARF version number
373	.byte	8                               # Address size
374	.byte	0                               # Segment selector size
375.Laddr_table_base0:
376	.quad	.Lfunc_begin0
377.Ldebug_addr_end0:
378	.ident	"clang version 15.0.0"
379	.section	".note.GNU-stack","",@progbits
380	.addrsig
381	.section	.debug_line,"",@progbits
382.Lline_table_start0:
383