xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-dwarf4-types-backward-forward-cross-reference-main.s (revision c33536e9c3068ae45f34f6e1c562d51cb8aa702a)
1# main.cpp
2# struct Foo {
3#  char *c1;
4#  char *c2;
5#  char *c3;
6# };
7# struct Foo2 {
8#  char *c1;
9#  char *c2;
10# };
11# int main(int argc, char *argv[]) {
12#  Foo f;
13#  f.c1 = argv[argc];
14#  f.c2 = argv[argc + 1];
15#  f.c3 = argv[argc + 2];
16#  Foo2 f2;
17#  f.c1 = argv[argc + 3];
18#  f.c2 = argv[argc + 4];
19#  return 0;
20# }
21
22# helper1.cpp
23# struct Foo3a {
24#   char *c1;
25#   char *c2;
26#   char *c3;
27# };
28# struct Foo4 {
29#   char *c1;
30#   char *c2;
31# };
32#
33# int foo2() {
34#   Foo3a f;
35#   Foo4 f2;
36#   return 0;
37# }
38
39	.text
40	.file	"llvm-link"
41	.globl	main                            # -- Begin function main
42	.p2align	4, 0x90
43	.type	main,@function
44main:                                   # @main
45.Lfunc_begin0:
46	.file	1 "/dwarf5-dwarf4-types-forward-cross-reference-test" "main.cpp" md5 0x13f000d932d7bb7e6986b96c183027b9
47	.loc	1 10 0                          # main.cpp:10:0
48	.cfi_startproc
49# %bb.0:                                # %entry
50	pushq	%rbp
51	.cfi_def_cfa_offset 16
52	.cfi_offset %rbp, -16
53	movq	%rsp, %rbp
54	.cfi_def_cfa_register %rbp
55	movl	$0, -4(%rbp)
56	movl	%edi, -8(%rbp)
57	movq	%rsi, -16(%rbp)
58.Ltmp0:
59	.loc	1 12 9 prologue_end             # main.cpp:12:9
60	movq	-16(%rbp), %rax
61	movslq	-8(%rbp), %rcx
62	movq	(%rax,%rcx,8), %rax
63	.loc	1 12 7 is_stmt 0                # main.cpp:12:7
64	movq	%rax, -40(%rbp)
65	.loc	1 13 9 is_stmt 1                # main.cpp:13:9
66	movq	-16(%rbp), %rax
67	.loc	1 13 14 is_stmt 0               # main.cpp:13:14
68	movl	-8(%rbp), %ecx
69	.loc	1 13 19                         # main.cpp:13:19
70	addl	$1, %ecx
71	.loc	1 13 9                          # main.cpp:13:9
72	movslq	%ecx, %rcx
73	movq	(%rax,%rcx,8), %rax
74	.loc	1 13 7                          # main.cpp:13:7
75	movq	%rax, -32(%rbp)
76	.loc	1 14 9 is_stmt 1                # main.cpp:14:9
77	movq	-16(%rbp), %rax
78	.loc	1 14 14 is_stmt 0               # main.cpp:14:14
79	movl	-8(%rbp), %ecx
80	.loc	1 14 19                         # main.cpp:14:19
81	addl	$2, %ecx
82	.loc	1 14 9                          # main.cpp:14:9
83	movslq	%ecx, %rcx
84	movq	(%rax,%rcx,8), %rax
85	.loc	1 14 7                          # main.cpp:14:7
86	movq	%rax, -24(%rbp)
87	.loc	1 16 9 is_stmt 1                # main.cpp:16:9
88	movq	-16(%rbp), %rax
89	.loc	1 16 14 is_stmt 0               # main.cpp:16:14
90	movl	-8(%rbp), %ecx
91	.loc	1 16 19                         # main.cpp:16:19
92	addl	$3, %ecx
93	.loc	1 16 9                          # main.cpp:16:9
94	movslq	%ecx, %rcx
95	movq	(%rax,%rcx,8), %rax
96	.loc	1 16 7                          # main.cpp:16:7
97	movq	%rax, -40(%rbp)
98	.loc	1 17 9 is_stmt 1                # main.cpp:17:9
99	movq	-16(%rbp), %rax
100	.loc	1 17 14 is_stmt 0               # main.cpp:17:14
101	movl	-8(%rbp), %ecx
102	.loc	1 17 19                         # main.cpp:17:19
103	addl	$4, %ecx
104	.loc	1 17 9                          # main.cpp:17:9
105	movslq	%ecx, %rcx
106	movq	(%rax,%rcx,8), %rax
107	.loc	1 17 7                          # main.cpp:17:7
108	movq	%rax, -32(%rbp)
109	.loc	1 18 2 is_stmt 1                # main.cpp:18:2
110	xorl	%eax, %eax
111	.loc	1 18 2 epilogue_begin is_stmt 0 # main.cpp:18:2
112	popq	%rbp
113	.cfi_def_cfa %rsp, 8
114	retq
115.Ltmp1:
116.Lfunc_end0:
117	.size	main, .Lfunc_end0-main
118	.cfi_endproc
119                                        # -- End function
120	.globl	_Z3foov                         # -- Begin function _Z3foov
121	.p2align	4, 0x90
122	.type	_Z3foov,@function
123_Z3foov:                                # @_Z3foov
124.Lfunc_begin1:
125	.file	2 "/dwarf5-dwarf4-types-forward-cross-reference-test" "helper.cpp" md5 0x650c984f17ca3a4e7785e30e6ca8f130
126	.loc	2 11 0 is_stmt 1                # helper.cpp:11:0
127	.cfi_startproc
128# %bb.0:                                # %entry
129	pushq	%rbp
130	.cfi_def_cfa_offset 16
131	.cfi_offset %rbp, -16
132	movq	%rsp, %rbp
133	.cfi_def_cfa_register %rbp
134.Ltmp2:
135	.loc	2 14 3 prologue_end             # helper.cpp:14:3
136	xorl	%eax, %eax
137	.loc	2 14 3 epilogue_begin is_stmt 0 # helper.cpp:14:3
138	popq	%rbp
139	.cfi_def_cfa %rsp, 8
140	retq
141.Ltmp3:
142.Lfunc_end1:
143	.size	_Z3foov, .Lfunc_end1-_Z3foov
144	.cfi_endproc
145                                        # -- End function
146	.section	.debug_info,"G",@progbits,7448148824980338162,comdat
147	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
148.Ldebug_info_start0:
149	.short	5                               # DWARF version number
150	.byte	2                               # DWARF Unit Type
151	.byte	8                               # Address Size (in bytes)
152	.long	.debug_abbrev                   # Offset Into Abbrev. Section
153	.quad	7448148824980338162             # Type Signature
154	.long	35                              # Type DIE Offset
155	.byte	1                               # Abbrev [1] 0x18:0x37 DW_TAG_type_unit
156	.short	33                              # DW_AT_language
157	.long	.Lline_table_start0             # DW_AT_stmt_list
158	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
159	.byte	2                               # Abbrev [2] 0x23:0x22 DW_TAG_structure_type
160	.byte	5                               # DW_AT_calling_convention
161	.byte	15                              # DW_AT_name
162	.byte	24                              # DW_AT_byte_size
163	.byte	1                               # DW_AT_decl_file
164	.byte	1                               # DW_AT_decl_line
165	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
166	.byte	12                              # DW_AT_name
167	.long	69                              # DW_AT_type
168	.byte	1                               # DW_AT_decl_file
169	.byte	2                               # DW_AT_decl_line
170	.byte	0                               # DW_AT_data_member_location
171	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
172	.byte	13                              # DW_AT_name
173	.long	69                              # DW_AT_type
174	.byte	1                               # DW_AT_decl_file
175	.byte	3                               # DW_AT_decl_line
176	.byte	8                               # DW_AT_data_member_location
177	.byte	3                               # Abbrev [3] 0x3b:0x9 DW_TAG_member
178	.byte	14                              # DW_AT_name
179	.long	69                              # DW_AT_type
180	.byte	1                               # DW_AT_decl_file
181	.byte	4                               # DW_AT_decl_line
182	.byte	16                              # DW_AT_data_member_location
183	.byte	0                               # End Of Children Mark
184	.byte	4                               # Abbrev [4] 0x45:0x5 DW_TAG_pointer_type
185	.long	74                              # DW_AT_type
186	.byte	5                               # Abbrev [5] 0x4a:0x4 DW_TAG_base_type
187	.byte	10                              # DW_AT_name
188	.byte	6                               # DW_AT_encoding
189	.byte	1                               # DW_AT_byte_size
190	.byte	0                               # End Of Children Mark
191.Ldebug_info_end0:
192	.section	.debug_info,"G",@progbits,5322170643381124694,comdat
193	.long	.Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
194.Ldebug_info_start1:
195	.short	5                               # DWARF version number
196	.byte	2                               # DWARF Unit Type
197	.byte	8                               # Address Size (in bytes)
198	.long	.debug_abbrev                   # Offset Into Abbrev. Section
199	.quad	5322170643381124694             # Type Signature
200	.long	35                              # Type DIE Offset
201	.byte	1                               # Abbrev [1] 0x18:0x2e DW_TAG_type_unit
202	.short	33                              # DW_AT_language
203	.long	.Lline_table_start0             # DW_AT_stmt_list
204	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
205	.byte	2                               # Abbrev [2] 0x23:0x19 DW_TAG_structure_type
206	.byte	5                               # DW_AT_calling_convention
207	.byte	17                              # DW_AT_name
208	.byte	16                              # DW_AT_byte_size
209	.byte	1                               # DW_AT_decl_file
210	.byte	6                               # DW_AT_decl_line
211	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
212	.byte	12                              # DW_AT_name
213	.long	60                              # DW_AT_type
214	.byte	1                               # DW_AT_decl_file
215	.byte	7                               # DW_AT_decl_line
216	.byte	0                               # DW_AT_data_member_location
217	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
218	.byte	13                              # DW_AT_name
219	.long	60                              # DW_AT_type
220	.byte	1                               # DW_AT_decl_file
221	.byte	8                               # DW_AT_decl_line
222	.byte	8                               # DW_AT_data_member_location
223	.byte	0                               # End Of Children Mark
224	.byte	4                               # Abbrev [4] 0x3c:0x5 DW_TAG_pointer_type
225	.long	65                              # DW_AT_type
226	.byte	5                               # Abbrev [5] 0x41:0x4 DW_TAG_base_type
227	.byte	10                              # DW_AT_name
228	.byte	6                               # DW_AT_encoding
229	.byte	1                               # DW_AT_byte_size
230	.byte	0                               # End Of Children Mark
231.Ldebug_info_end1:
232	.section	.debug_info,"G",@progbits,1175092228111723119,comdat
233	.long	.Ldebug_info_end2-.Ldebug_info_start2 # Length of Unit
234.Ldebug_info_start2:
235	.short	5                               # DWARF version number
236	.byte	2                               # DWARF Unit Type
237	.byte	8                               # Address Size (in bytes)
238	.long	.debug_abbrev                   # Offset Into Abbrev. Section
239	.quad	1175092228111723119             # Type Signature
240	.long	35                              # Type DIE Offset
241	.byte	1                               # Abbrev [1] 0x18:0x37 DW_TAG_type_unit
242	.short	33                              # DW_AT_language
243	.long	.Lline_table_start0             # DW_AT_stmt_list
244	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
245	.byte	2                               # Abbrev [2] 0x23:0x22 DW_TAG_structure_type
246	.byte	5                               # DW_AT_calling_convention
247	.byte	18                              # DW_AT_name
248	.byte	24                              # DW_AT_byte_size
249	.byte	2                               # DW_AT_decl_file
250	.byte	1                               # DW_AT_decl_line
251	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
252	.byte	12                              # DW_AT_name
253	.long	69                              # DW_AT_type
254	.byte	2                               # DW_AT_decl_file
255	.byte	2                               # DW_AT_decl_line
256	.byte	0                               # DW_AT_data_member_location
257	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
258	.byte	13                              # DW_AT_name
259	.long	69                              # DW_AT_type
260	.byte	2                               # DW_AT_decl_file
261	.byte	3                               # DW_AT_decl_line
262	.byte	8                               # DW_AT_data_member_location
263	.byte	3                               # Abbrev [3] 0x3b:0x9 DW_TAG_member
264	.byte	14                              # DW_AT_name
265	.long	69                              # DW_AT_type
266	.byte	2                               # DW_AT_decl_file
267	.byte	4                               # DW_AT_decl_line
268	.byte	16                              # DW_AT_data_member_location
269	.byte	0                               # End Of Children Mark
270	.byte	4                               # Abbrev [4] 0x45:0x5 DW_TAG_pointer_type
271	.long	74                              # DW_AT_type
272	.byte	5                               # Abbrev [5] 0x4a:0x4 DW_TAG_base_type
273	.byte	10                              # DW_AT_name
274	.byte	6                               # DW_AT_encoding
275	.byte	1                               # DW_AT_byte_size
276	.byte	0                               # End Of Children Mark
277.Ldebug_info_end2:
278	.section	.debug_info,"G",@progbits,12995149649732825572,comdat
279	.long	.Ldebug_info_end3-.Ldebug_info_start3 # Length of Unit
280.Ldebug_info_start3:
281	.short	5                               # DWARF version number
282	.byte	2                               # DWARF Unit Type
283	.byte	8                               # Address Size (in bytes)
284	.long	.debug_abbrev                   # Offset Into Abbrev. Section
285	.quad	-5451594423976726044            # Type Signature
286	.long	35                              # Type DIE Offset
287	.byte	1                               # Abbrev [1] 0x18:0x2e DW_TAG_type_unit
288	.short	33                              # DW_AT_language
289	.long	.Lline_table_start0             # DW_AT_stmt_list
290	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
291	.byte	2                               # Abbrev [2] 0x23:0x19 DW_TAG_structure_type
292	.byte	5                               # DW_AT_calling_convention
293	.byte	19                              # DW_AT_name
294	.byte	16                              # DW_AT_byte_size
295	.byte	2                               # DW_AT_decl_file
296	.byte	6                               # DW_AT_decl_line
297	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
298	.byte	12                              # DW_AT_name
299	.long	60                              # DW_AT_type
300	.byte	2                               # DW_AT_decl_file
301	.byte	7                               # DW_AT_decl_line
302	.byte	0                               # DW_AT_data_member_location
303	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
304	.byte	13                              # DW_AT_name
305	.long	60                              # DW_AT_type
306	.byte	2                               # DW_AT_decl_file
307	.byte	8                               # DW_AT_decl_line
308	.byte	8                               # DW_AT_data_member_location
309	.byte	0                               # End Of Children Mark
310	.byte	4                               # Abbrev [4] 0x3c:0x5 DW_TAG_pointer_type
311	.long	65                              # DW_AT_type
312	.byte	5                               # Abbrev [5] 0x41:0x4 DW_TAG_base_type
313	.byte	10                              # DW_AT_name
314	.byte	6                               # DW_AT_encoding
315	.byte	1                               # DW_AT_byte_size
316	.byte	0                               # End Of Children Mark
317.Ldebug_info_end3:
318	.section	.debug_abbrev,"",@progbits
319	.byte	1                               # Abbreviation Code
320	.byte	65                              # DW_TAG_type_unit
321	.byte	1                               # DW_CHILDREN_yes
322	.byte	19                              # DW_AT_language
323	.byte	5                               # DW_FORM_data2
324	.byte	16                              # DW_AT_stmt_list
325	.byte	23                              # DW_FORM_sec_offset
326	.byte	114                             # DW_AT_str_offsets_base
327	.byte	23                              # DW_FORM_sec_offset
328	.byte	0                               # EOM(1)
329	.byte	0                               # EOM(2)
330	.byte	2                               # Abbreviation Code
331	.byte	19                              # DW_TAG_structure_type
332	.byte	1                               # DW_CHILDREN_yes
333	.byte	54                              # DW_AT_calling_convention
334	.byte	11                              # DW_FORM_data1
335	.byte	3                               # DW_AT_name
336	.byte	37                              # DW_FORM_strx1
337	.byte	11                              # DW_AT_byte_size
338	.byte	11                              # DW_FORM_data1
339	.byte	58                              # DW_AT_decl_file
340	.byte	11                              # DW_FORM_data1
341	.byte	59                              # DW_AT_decl_line
342	.byte	11                              # DW_FORM_data1
343	.byte	0                               # EOM(1)
344	.byte	0                               # EOM(2)
345	.byte	3                               # Abbreviation Code
346	.byte	13                              # DW_TAG_member
347	.byte	0                               # DW_CHILDREN_no
348	.byte	3                               # DW_AT_name
349	.byte	37                              # DW_FORM_strx1
350	.byte	73                              # DW_AT_type
351	.byte	19                              # DW_FORM_ref4
352	.byte	58                              # DW_AT_decl_file
353	.byte	11                              # DW_FORM_data1
354	.byte	59                              # DW_AT_decl_line
355	.byte	11                              # DW_FORM_data1
356	.byte	56                              # DW_AT_data_member_location
357	.byte	11                              # DW_FORM_data1
358	.byte	0                               # EOM(1)
359	.byte	0                               # EOM(2)
360	.byte	4                               # Abbreviation Code
361	.byte	15                              # DW_TAG_pointer_type
362	.byte	0                               # DW_CHILDREN_no
363	.byte	73                              # DW_AT_type
364	.byte	19                              # DW_FORM_ref4
365	.byte	0                               # EOM(1)
366	.byte	0                               # EOM(2)
367	.byte	5                               # Abbreviation Code
368	.byte	36                              # DW_TAG_base_type
369	.byte	0                               # DW_CHILDREN_no
370	.byte	3                               # DW_AT_name
371	.byte	37                              # DW_FORM_strx1
372	.byte	62                              # DW_AT_encoding
373	.byte	11                              # DW_FORM_data1
374	.byte	11                              # DW_AT_byte_size
375	.byte	11                              # DW_FORM_data1
376	.byte	0                               # EOM(1)
377	.byte	0                               # EOM(2)
378	.byte	6                               # Abbreviation Code
379	.byte	17                              # DW_TAG_compile_unit
380	.byte	1                               # DW_CHILDREN_yes
381	.byte	37                              # DW_AT_producer
382	.byte	37                              # DW_FORM_strx1
383	.byte	19                              # DW_AT_language
384	.byte	5                               # DW_FORM_data2
385	.byte	3                               # DW_AT_name
386	.byte	37                              # DW_FORM_strx1
387	.byte	114                             # DW_AT_str_offsets_base
388	.byte	23                              # DW_FORM_sec_offset
389	.byte	16                              # DW_AT_stmt_list
390	.byte	23                              # DW_FORM_sec_offset
391	.byte	27                              # DW_AT_comp_dir
392	.byte	37                              # DW_FORM_strx1
393	.byte	17                              # DW_AT_low_pc
394	.byte	27                              # DW_FORM_addrx
395	.byte	18                              # DW_AT_high_pc
396	.byte	6                               # DW_FORM_data4
397	.byte	115                             # DW_AT_addr_base
398	.byte	23                              # DW_FORM_sec_offset
399	.byte	0                               # EOM(1)
400	.byte	0                               # EOM(2)
401	.byte	7                               # Abbreviation Code
402	.byte	46                              # DW_TAG_subprogram
403	.byte	1                               # DW_CHILDREN_yes
404	.byte	17                              # DW_AT_low_pc
405	.byte	27                              # DW_FORM_addrx
406	.byte	18                              # DW_AT_high_pc
407	.byte	6                               # DW_FORM_data4
408	.byte	64                              # DW_AT_frame_base
409	.byte	24                              # DW_FORM_exprloc
410	.byte	3                               # DW_AT_name
411	.byte	37                              # DW_FORM_strx1
412	.byte	58                              # DW_AT_decl_file
413	.byte	11                              # DW_FORM_data1
414	.byte	59                              # DW_AT_decl_line
415	.byte	11                              # DW_FORM_data1
416	.byte	73                              # DW_AT_type
417	.byte	19                              # DW_FORM_ref4
418	.byte	63                              # DW_AT_external
419	.byte	25                              # DW_FORM_flag_present
420	.byte	0                               # EOM(1)
421	.byte	0                               # EOM(2)
422	.byte	8                               # Abbreviation Code
423	.byte	5                               # DW_TAG_formal_parameter
424	.byte	0                               # DW_CHILDREN_no
425	.byte	2                               # DW_AT_location
426	.byte	24                              # DW_FORM_exprloc
427	.byte	3                               # DW_AT_name
428	.byte	37                              # DW_FORM_strx1
429	.byte	58                              # DW_AT_decl_file
430	.byte	11                              # DW_FORM_data1
431	.byte	59                              # DW_AT_decl_line
432	.byte	11                              # DW_FORM_data1
433	.byte	73                              # DW_AT_type
434	.byte	19                              # DW_FORM_ref4
435	.byte	0                               # EOM(1)
436	.byte	0                               # EOM(2)
437	.byte	9                               # Abbreviation Code
438	.byte	52                              # DW_TAG_variable
439	.byte	0                               # DW_CHILDREN_no
440	.byte	2                               # DW_AT_location
441	.byte	24                              # DW_FORM_exprloc
442	.byte	3                               # DW_AT_name
443	.byte	37                              # DW_FORM_strx1
444	.byte	58                              # DW_AT_decl_file
445	.byte	11                              # DW_FORM_data1
446	.byte	59                              # DW_AT_decl_line
447	.byte	11                              # DW_FORM_data1
448	.byte	73                              # DW_AT_type
449	.byte	19                              # DW_FORM_ref4
450	.byte	0                               # EOM(1)
451	.byte	0                               # EOM(2)
452	.byte	10                              # Abbreviation Code
453	.byte	19                              # DW_TAG_structure_type
454	.byte	0                               # DW_CHILDREN_no
455	.byte	60                              # DW_AT_declaration
456	.byte	25                              # DW_FORM_flag_present
457	.byte	105                             # DW_AT_signature
458	.byte	32                              # DW_FORM_ref_sig8
459	.byte	0                               # EOM(1)
460	.byte	0                               # EOM(2)
461	.byte	11                              # Abbreviation Code
462	.byte	46                              # DW_TAG_subprogram
463	.byte	1                               # DW_CHILDREN_yes
464	.byte	17                              # DW_AT_low_pc
465	.byte	27                              # DW_FORM_addrx
466	.byte	18                              # DW_AT_high_pc
467	.byte	6                               # DW_FORM_data4
468	.byte	64                              # DW_AT_frame_base
469	.byte	24                              # DW_FORM_exprloc
470	.byte	110                             # DW_AT_linkage_name
471	.byte	37                              # DW_FORM_strx1
472	.byte	3                               # DW_AT_name
473	.byte	37                              # DW_FORM_strx1
474	.byte	58                              # DW_AT_decl_file
475	.byte	11                              # DW_FORM_data1
476	.byte	59                              # DW_AT_decl_line
477	.byte	11                              # DW_FORM_data1
478	.byte	73                              # DW_AT_type
479	.byte	19                              # DW_FORM_ref4
480	.byte	63                              # DW_AT_external
481	.byte	25                              # DW_FORM_flag_present
482	.byte	0                               # EOM(1)
483	.byte	0                               # EOM(2)
484	.byte	12                              # Abbreviation Code
485	.byte	52                              # DW_TAG_variable
486	.byte	0                               # DW_CHILDREN_no
487	.byte	2                               # DW_AT_location
488	.byte	24                              # DW_FORM_exprloc
489	.byte	3                               # DW_AT_name
490	.byte	37                              # DW_FORM_strx1
491	.byte	58                              # DW_AT_decl_file
492	.byte	11                              # DW_FORM_data1
493	.byte	59                              # DW_AT_decl_line
494	.byte	11                              # DW_FORM_data1
495	.byte	73                              # DW_AT_type
496	.byte	16                              # DW_FORM_ref_addr
497	.byte	0                               # EOM(1)
498	.byte	0                               # EOM(2)
499	.byte	0                               # EOM(3)
500	.section	.debug_info,"",@progbits
501.Lcu_begin0:
502	.long	.Ldebug_info_end4-.Ldebug_info_start4 # Length of Unit
503.Ldebug_info_start4:
504	.short	5                               # DWARF version number
505	.byte	1                               # DWARF Unit Type
506	.byte	8                               # Address Size (in bytes)
507	.long	.debug_abbrev                   # Offset Into Abbrev. Section
508	.byte	6                               # Abbrev [6] 0xc:0x78 DW_TAG_compile_unit
509	.byte	0                               # DW_AT_producer
510	.short	33                              # DW_AT_language
511	.byte	1                               # DW_AT_name
512	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
513	.long	.Lline_table_start0             # DW_AT_stmt_list
514	.byte	2                               # DW_AT_comp_dir
515	.byte	0                               # DW_AT_low_pc
516	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
517	.long	.Laddr_table_base0              # DW_AT_addr_base
518	.byte	7                               # Abbrev [7] 0x23:0x3c DW_TAG_subprogram
519	.byte	0                               # DW_AT_low_pc
520	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
521	.byte	1                               # DW_AT_frame_base
522	.byte	86
523	.byte	4                               # DW_AT_name
524	.byte	1                               # DW_AT_decl_file
525	.byte	10                              # DW_AT_decl_line
526	.long	95                              # DW_AT_type
527                                        # DW_AT_external
528	.byte	8                               # Abbrev [8] 0x32:0xb DW_TAG_formal_parameter
529	.byte	2                               # DW_AT_location
530	.byte	145
531	.byte	120
532	.byte	8                               # DW_AT_name
533	.byte	1                               # DW_AT_decl_file
534	.byte	10                              # DW_AT_decl_line
535	.long	95                              # DW_AT_type
536	.byte	8                               # Abbrev [8] 0x3d:0xb DW_TAG_formal_parameter
537	.byte	2                               # DW_AT_location
538	.byte	145
539	.byte	112
540	.byte	9                               # DW_AT_name
541	.byte	1                               # DW_AT_decl_file
542	.byte	10                              # DW_AT_decl_line
543	.long	99                              # DW_AT_type
544	.byte	9                               # Abbrev [9] 0x48:0xb DW_TAG_variable
545	.byte	2                               # DW_AT_location
546	.byte	145
547	.byte	88
548	.byte	11                              # DW_AT_name
549	.byte	1                               # DW_AT_decl_file
550	.byte	11                              # DW_AT_decl_line
551	.long	113                             # DW_AT_type
552	.byte	12                              # Abbrev [12] 0x53:0xb DW_TAG_variable <-- Manually modified s/9/12
553	.byte	2                               # DW_AT_location
554	.byte	145
555	.byte	72
556	.byte	16                              # DW_AT_name
557	.byte	1                               # DW_AT_decl_file
558	.byte	15                              # DW_AT_decl_line
559	.long	.Lmanual_label                  # DW_AT_type
560	.byte	0                               # End Of Children Mark
561	.byte	5                               # Abbrev [5] 0x5f:0x4 DW_TAG_base_type
562	.byte	5                               # DW_AT_name
563	.byte	5                               # DW_AT_encoding
564	.byte	4                               # DW_AT_byte_size
565	.byte	4                               # Abbrev [4] 0x63:0x5 DW_TAG_pointer_type
566	.long	104                             # DW_AT_type
567	.byte	4                               # Abbrev [4] 0x68:0x5 DW_TAG_pointer_type
568	.long	109                             # DW_AT_type
569	.byte	5                               # Abbrev [5] 0x6d:0x4 DW_TAG_base_type
570	.byte	10                              # DW_AT_name
571	.byte	6                               # DW_AT_encoding
572	.byte	1                               # DW_AT_byte_size
573.Lmanual_label_forward:
574	.byte	10                              # Abbrev [10] 0x71:0x9 DW_TAG_structure_type
575                                        # DW_AT_declaration
576	.quad	7448148824980338162             # DW_AT_signature
577	.byte	10                              # Abbrev [10] 0x7a:0x9 DW_TAG_structure_type
578                                        # DW_AT_declaration
579	.quad	5322170643381124694             # DW_AT_signature
580	.byte	0                               # End Of Children Mark
581.Ldebug_info_end4:
582.Lcu_begin1:
583	.long	.Ldebug_info_end5-.Ldebug_info_start5 # Length of Unit
584.Ldebug_info_start5:
585	.short	5                               # DWARF version number
586	.byte	1                               # DWARF Unit Type
587	.byte	8                               # Address Size (in bytes)
588	.long	.debug_abbrev                   # Offset Into Abbrev. Section
589	.byte	6                               # Abbrev [6] 0xc:0x55 DW_TAG_compile_unit
590	.byte	0                               # DW_AT_producer
591	.short	33                              # DW_AT_language
592	.byte	3                               # DW_AT_name
593	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
594	.long	.Lline_table_start0             # DW_AT_stmt_list
595	.byte	2                               # DW_AT_comp_dir
596	.byte	1                               # DW_AT_low_pc
597	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
598	.long	.Laddr_table_base0              # DW_AT_addr_base
599	.byte	11                              # Abbrev [11] 0x23:0x27 DW_TAG_subprogram
600	.byte	1                               # DW_AT_low_pc
601	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
602	.byte	1                               # DW_AT_frame_base
603	.byte	86
604	.byte	6                               # DW_AT_linkage_name
605	.byte	7                               # DW_AT_name
606	.byte	2                               # DW_AT_decl_file
607	.byte	11                              # DW_AT_decl_line
608	.long	74                              # DW_AT_type
609                                        # DW_AT_external
610	.byte	9                               # Abbrev [9] 0x33:0xb DW_TAG_variable
611	.byte	2                               # DW_AT_location
612	.byte	145
613	.byte	104
614	.byte	11                              # DW_AT_name
615	.byte	2                               # DW_AT_decl_file
616	.byte	12                              # DW_AT_decl_line
617	.long	78                              # DW_AT_type
618	.byte	12                              # Abbrev [12] 0x3e:0xb DW_TAG_variable <-- Manually modified s/9/12
619	.byte	2                               # DW_AT_location
620	.byte	145
621	.byte	88
622	.byte	16                              # DW_AT_name
623	.byte	2                               # DW_AT_decl_file
624	.byte	13                              # DW_AT_decl_line
625	.long	.Lmanual_label_forward          # DW_AT_type
626	.byte	0                               # End Of Children Mark
627	.byte	5                               # Abbrev [5] 0x4a:0x4 DW_TAG_base_type
628	.byte	5                               # DW_AT_name
629	.byte	5                               # DW_AT_encoding
630	.byte	4                               # DW_AT_byte_size
631.Lmanual_label:
632	.byte	10                              # Abbrev [10] 0x4e:0x9 DW_TAG_structure_type
633                                        # DW_AT_declaration
634	.quad	1175092228111723119             # DW_AT_signature
635	.byte	10                              # Abbrev [10] 0x57:0x9 DW_TAG_structure_type
636                                        # DW_AT_declaration
637	.quad	-5451594423976726044            # DW_AT_signature
638	.byte	0                               # End Of Children Mark
639.Ldebug_info_end5:
640	.section	.debug_str_offsets,"",@progbits
641	.long	84                              # Length of String Offsets Set
642	.short	5
643	.short	0
644.Lstr_offsets_base0:
645	.section	.debug_str,"MS",@progbits,1
646.Linfo_string0:
647	.asciz	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 73027ae39b1492e5b6033358a13b86d7d1e781ae)" # string offset=0
648.Linfo_string1:
649	.asciz	"main.cpp"                      # string offset=105
650.Linfo_string2:
651	.asciz	"/dwarf5-dwarf4-types-forward-cross-reference-test" # string offset=114
652.Linfo_string3:
653	.asciz	"helper.cpp"                    # string offset=201
654.Linfo_string4:
655	.asciz	"main"                          # string offset=212
656.Linfo_string5:
657	.asciz	"int"                           # string offset=217
658.Linfo_string6:
659	.asciz	"_Z3foov"                       # string offset=221
660.Linfo_string7:
661	.asciz	"foo"                           # string offset=229
662.Linfo_string8:
663	.asciz	"argc"                          # string offset=233
664.Linfo_string9:
665	.asciz	"argv"                          # string offset=238
666.Linfo_string10:
667	.asciz	"char"                          # string offset=243
668.Linfo_string11:
669	.asciz	"f"                             # string offset=248
670.Linfo_string12:
671	.asciz	"c1"                            # string offset=250
672.Linfo_string13:
673	.asciz	"c2"                            # string offset=253
674.Linfo_string14:
675	.asciz	"c3"                            # string offset=256
676.Linfo_string15:
677	.asciz	"Foo"                           # string offset=259
678.Linfo_string16:
679	.asciz	"f2"                            # string offset=263
680.Linfo_string17:
681	.asciz	"Foo2"                          # string offset=266
682.Linfo_string18:
683	.asciz	"Foo2a"                         # string offset=271
684.Linfo_string19:
685	.asciz	"Foo3"                          # string offset=277
686	.section	.debug_str_offsets,"",@progbits
687	.long	.Linfo_string0
688	.long	.Linfo_string1
689	.long	.Linfo_string2
690	.long	.Linfo_string3
691	.long	.Linfo_string4
692	.long	.Linfo_string5
693	.long	.Linfo_string6
694	.long	.Linfo_string7
695	.long	.Linfo_string8
696	.long	.Linfo_string9
697	.long	.Linfo_string10
698	.long	.Linfo_string11
699	.long	.Linfo_string12
700	.long	.Linfo_string13
701	.long	.Linfo_string14
702	.long	.Linfo_string15
703	.long	.Linfo_string16
704	.long	.Linfo_string17
705	.long	.Linfo_string18
706	.long	.Linfo_string19
707	.section	.debug_addr,"",@progbits
708	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
709.Ldebug_addr_start0:
710	.short	5                               # DWARF version number
711	.byte	8                               # Address size
712	.byte	0                               # Segment selector size
713.Laddr_table_base0:
714	.quad	.Lfunc_begin0
715	.quad	.Lfunc_begin1
716.Ldebug_addr_end0:
717	.ident	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 73027ae39b1492e5b6033358a13b86d7d1e781ae)"
718	.ident	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 73027ae39b1492e5b6033358a13b86d7d1e781ae)"
719	.section	".note.GNU-stack","",@progbits
720	.addrsig
721	.section	.debug_line,"",@progbits
722.Lline_table_start0:
723