xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-df-input-lowpc-ranges-main.s (revision e1ceae4b6039869f738436e09fe072779a61aadb)
1# clang++ -fbasic-block-sections=all -ffunction-sections -g2 -gdwarf-5 -gsplit-dwarf
2# __attribute__((always_inline))
3# int doStuff(int val) {
4#   if (val)
5#     ++val;
6#   return val;
7# }
8# __attribute__((always_inline))
9# int doStuff2(int val) {
10#   int foo = 3;
11#   return val + foo;
12# }
13#
14#
15# int main(int argc, const char** argv) {
16#     return  doStuff(argc) + doStuff2(argc);;
17# }
18	.text
19	.file	"main.cpp"
20	.section	.text._Z7doStuffi,"ax",@progbits
21	.globl	_Z7doStuffi                     # -- Begin function _Z7doStuffi
22	.p2align	4, 0x90
23	.type	_Z7doStuffi,@function
24_Z7doStuffi:                            # @_Z7doStuffi
25.Lfunc_begin0:
26	.file	0 "." "main.cpp" md5 0x69a746524dda095f8ea37f5a26dd1e9b
27	.loc	0 2 0                           # main.cpp:2:0
28	.cfi_startproc
29# %bb.0:                                # %entry
30	pushq	%rbp
31	.cfi_def_cfa_offset 16
32	.cfi_offset %rbp, -16
33	movq	%rsp, %rbp
34	.cfi_def_cfa_register %rbp
35	movl	%edi, -4(%rbp)
36.Ltmp0:
37	.loc	0 3 7 prologue_end              # main.cpp:3:7
38	cmpl	$0, -4(%rbp)
39.Ltmp1:
40	.loc	0 3 7 is_stmt 0                 # main.cpp:3:7
41	je	_Z7doStuffi.__part.2
42	jmp	_Z7doStuffi.__part.1
43.LBB_END0_0:
44	.cfi_endproc
45	.section	.text._Z7doStuffi,"ax",@progbits,unique,1
46_Z7doStuffi.__part.1:                   # %if.then
47	.cfi_startproc
48	.cfi_def_cfa %rbp, 16
49	.cfi_offset %rbp, -16
50	.loc	0 4 5 is_stmt 1                 # main.cpp:4:5
51	movl	-4(%rbp), %eax
52	addl	$1, %eax
53	movl	%eax, -4(%rbp)
54	jmp	_Z7doStuffi.__part.2
55.LBB_END0_1:
56	.size	_Z7doStuffi.__part.1, .LBB_END0_1-_Z7doStuffi.__part.1
57	.cfi_endproc
58	.section	.text._Z7doStuffi,"ax",@progbits,unique,2
59_Z7doStuffi.__part.2:                   # %if.end
60	.cfi_startproc
61	.cfi_def_cfa %rbp, 16
62	.cfi_offset %rbp, -16
63	.loc	0 5 10                          # main.cpp:5:10
64	movl	-4(%rbp), %eax
65	.loc	0 5 3 epilogue_begin is_stmt 0  # main.cpp:5:3
66	popq	%rbp
67	.cfi_def_cfa %rsp, 8
68	retq
69.LBB_END0_2:
70	.size	_Z7doStuffi.__part.2, .LBB_END0_2-_Z7doStuffi.__part.2
71	.cfi_endproc
72	.section	.text._Z7doStuffi,"ax",@progbits
73.Lfunc_end0:
74	.size	_Z7doStuffi, .Lfunc_end0-_Z7doStuffi
75                                        # -- End function
76	.section	.text._Z8doStuff2i,"ax",@progbits
77	.globl	_Z8doStuff2i                    # -- Begin function _Z8doStuff2i
78	.p2align	4, 0x90
79	.type	_Z8doStuff2i,@function
80_Z8doStuff2i:                           # @_Z8doStuff2i
81.Lfunc_begin1:
82	.loc	0 8 0 is_stmt 1                 # main.cpp:8:0
83	.cfi_startproc
84# %bb.0:                                # %entry
85	pushq	%rbp
86	.cfi_def_cfa_offset 16
87	.cfi_offset %rbp, -16
88	movq	%rsp, %rbp
89	.cfi_def_cfa_register %rbp
90	movl	%edi, -4(%rbp)
91.Ltmp2:
92	.loc	0 9 7 prologue_end              # main.cpp:9:7
93	movl	$3, -8(%rbp)
94	.loc	0 10 10                         # main.cpp:10:10
95	movl	-4(%rbp), %eax
96	.loc	0 10 14 is_stmt 0               # main.cpp:10:14
97	addl	-8(%rbp), %eax
98	.loc	0 10 3 epilogue_begin           # main.cpp:10:3
99	popq	%rbp
100	.cfi_def_cfa %rsp, 8
101	retq
102.LBB_END1_0:
103	.cfi_endproc
104.Lfunc_end1:
105	.size	_Z8doStuff2i, .Lfunc_end1-_Z8doStuff2i
106                                        # -- End function
107	.section	.text.main,"ax",@progbits
108	.globl	main                            # -- Begin function main
109	.p2align	4, 0x90
110	.type	main,@function
111main:                                   # @main
112.Lfunc_begin2:
113	.loc	0 14 0 is_stmt 1                # main.cpp:14:0
114	.cfi_startproc
115# %bb.0:                                # %entry
116	pushq	%rbp
117	.cfi_def_cfa_offset 16
118	.cfi_offset %rbp, -16
119	movq	%rsp, %rbp
120	.cfi_def_cfa_register %rbp
121	movl	$0, -16(%rbp)
122	movl	%edi, -20(%rbp)
123	movq	%rsi, -32(%rbp)
124.Ltmp3:
125	.loc	0 15 21 prologue_end            # main.cpp:15:21
126	movl	-20(%rbp), %eax
127	movl	%eax, -12(%rbp)
128.Ltmp4:
129	.loc	0 3 7                           # main.cpp:3:7
130	cmpl	$0, -12(%rbp)
131.Ltmp5:
132	.loc	0 3 7 is_stmt 0                 # main.cpp:3:7
133	je	main.__part.2
134	jmp	main.__part.1
135.LBB_END2_0:
136	.cfi_endproc
137	.section	.text.main,"ax",@progbits,unique,3
138main.__part.1:                          # %if.then.i
139	.cfi_startproc
140	.cfi_def_cfa %rbp, 16
141	.cfi_offset %rbp, -16
142	.loc	0 4 5 is_stmt 1                 # main.cpp:4:5
143	movl	-12(%rbp), %eax
144	addl	$1, %eax
145	movl	%eax, -12(%rbp)
146	jmp	main.__part.2
147.LBB_END2_1:
148	.size	main.__part.1, .LBB_END2_1-main.__part.1
149	.cfi_endproc
150	.section	.text.main,"ax",@progbits,unique,4
151main.__part.2:                          # %_Z7doStuffi.exit
152	.cfi_startproc
153	.cfi_def_cfa %rbp, 16
154	.cfi_offset %rbp, -16
155	.loc	0 5 10                          # main.cpp:5:10
156	movl	-12(%rbp), %eax
157.Ltmp6:
158	.loc	0 15 38                         # main.cpp:15:38
159	movl	-20(%rbp), %ecx
160	movl	%ecx, -4(%rbp)
161.Ltmp7:
162	.loc	0 9 7                           # main.cpp:9:7
163	movl	$3, -8(%rbp)
164	.loc	0 10 10                         # main.cpp:10:10
165	movl	-4(%rbp), %ecx
166	.loc	0 10 14 is_stmt 0               # main.cpp:10:14
167	addl	-8(%rbp), %ecx
168.Ltmp8:
169	.loc	0 15 27 is_stmt 1               # main.cpp:15:27
170	addl	%ecx, %eax
171	.loc	0 15 5 epilogue_begin is_stmt 0 # main.cpp:15:5
172	popq	%rbp
173	.cfi_def_cfa %rsp, 8
174	retq
175.LBB_END2_2:
176	.size	main.__part.2, .LBB_END2_2-main.__part.2
177	.cfi_endproc
178	.section	.text.main,"ax",@progbits
179.Lfunc_end2:
180	.size	main, .Lfunc_end2-main
181                                        # -- End function
182	.section	.debug_abbrev,"",@progbits
183	.byte	1                               # Abbreviation Code
184	.byte	74                              # DW_TAG_skeleton_unit
185	.byte	0                               # DW_CHILDREN_no
186	.byte	16                              # DW_AT_stmt_list
187	.byte	23                              # DW_FORM_sec_offset
188	.byte	114                             # DW_AT_str_offsets_base
189	.byte	23                              # DW_FORM_sec_offset
190	.byte	27                              # DW_AT_comp_dir
191	.byte	37                              # DW_FORM_strx1
192	.ascii	"\264B"                         # DW_AT_GNU_pubnames
193	.byte	25                              # DW_FORM_flag_present
194	.byte	118                             # DW_AT_dwo_name
195	.byte	37                              # DW_FORM_strx1
196	.byte	17                              # DW_AT_low_pc
197	.byte	1                               # DW_FORM_addr
198	.byte	85                              # DW_AT_ranges
199	.byte	35                              # DW_FORM_rnglistx
200	.byte	115                             # DW_AT_addr_base
201	.byte	23                              # DW_FORM_sec_offset
202	.byte	116                             # DW_AT_rnglists_base
203	.byte	23                              # DW_FORM_sec_offset
204	.byte	0                               # EOM(1)
205	.byte	0                               # EOM(2)
206	.byte	0                               # EOM(3)
207	.section	.debug_info,"",@progbits
208.Lcu_begin0:
209	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
210.Ldebug_info_start0:
211	.short	5                               # DWARF version number
212	.byte	4                               # DWARF Unit Type
213	.byte	8                               # Address Size (in bytes)
214	.long	.debug_abbrev                   # Offset Into Abbrev. Section
215	.quad	1354107878901449185
216	.byte	1                               # Abbrev [1] 0x14:0x1c DW_TAG_skeleton_unit
217	.long	.Lline_table_start0             # DW_AT_stmt_list
218	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
219	.byte	0                               # DW_AT_comp_dir
220                                        # DW_AT_GNU_pubnames
221	.byte	1                               # DW_AT_dwo_name
222	.quad	0                               # DW_AT_low_pc
223	.byte	0                               # DW_AT_ranges
224	.long	.Laddr_table_base0              # DW_AT_addr_base
225	.long	.Lrnglists_table_base0          # DW_AT_rnglists_base
226.Ldebug_info_end0:
227	.section	.debug_rnglists,"",@progbits
228	.long	.Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
229.Ldebug_list_header_start0:
230	.short	5                               # Version
231	.byte	8                               # Address size
232	.byte	0                               # Segment selector size
233	.long	1                               # Offset entry count
234.Lrnglists_table_base0:
235	.long	.Ldebug_ranges4-.Lrnglists_table_base0
236.Ldebug_ranges4:
237	.byte	3                               # DW_RLE_startx_length
238	.byte	0                               #   start index
239	.uleb128 .LBB_END0_1-_Z7doStuffi.__part.1 #   length
240	.byte	3                               # DW_RLE_startx_length
241	.byte	1                               #   start index
242	.uleb128 .LBB_END0_2-_Z7doStuffi.__part.2 #   length
243	.byte	3                               # DW_RLE_startx_length
244	.byte	2                               #   start index
245	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   length
246	.byte	3                               # DW_RLE_startx_length
247	.byte	3                               #   start index
248	.uleb128 .Lfunc_end1-.Lfunc_begin1      #   length
249	.byte	3                               # DW_RLE_startx_length
250	.byte	4                               #   start index
251	.uleb128 .LBB_END2_1-main.__part.1      #   length
252	.byte	3                               # DW_RLE_startx_length
253	.byte	5                               #   start index
254	.uleb128 .LBB_END2_2-main.__part.2      #   length
255	.byte	3                               # DW_RLE_startx_length
256	.byte	6                               #   start index
257	.uleb128 .Lfunc_end2-.Lfunc_begin2      #   length
258	.byte	0                               # DW_RLE_end_of_list
259.Ldebug_list_header_end0:
260	.section	.debug_str_offsets,"",@progbits
261	.long	12                              # Length of String Offsets Set
262	.short	5
263	.short	0
264.Lstr_offsets_base0:
265	.section	.debug_str,"MS",@progbits,1
266.Lskel_string0:
267	.asciz	"." # string offset=0
268.Lskel_string1:
269	.asciz	"main.dwo"                      # string offset=38
270	.section	.debug_str_offsets,"",@progbits
271	.long	.Lskel_string0
272	.long	.Lskel_string1
273	.section	.debug_str_offsets.dwo,"e",@progbits
274	.long	60                              # Length of String Offsets Set
275	.short	5
276	.short	0
277	.section	.debug_str.dwo,"eMS",@progbits,1
278.Linfo_string0:
279	.asciz	"_Z7doStuffi"                   # string offset=0
280.Linfo_string1:
281	.asciz	"doStuff"                       # string offset=12
282.Linfo_string2:
283	.asciz	"int"                           # string offset=20
284.Linfo_string3:
285	.asciz	"val"                           # string offset=24
286.Linfo_string4:
287	.asciz	"_Z8doStuff2i"                  # string offset=28
288.Linfo_string5:
289	.asciz	"doStuff2"                      # string offset=41
290.Linfo_string6:
291	.asciz	"foo"                           # string offset=50
292.Linfo_string7:
293	.asciz	"main"                          # string offset=54
294.Linfo_string8:
295	.asciz	"argc"                          # string offset=59
296.Linfo_string9:
297	.asciz	"argv"                          # string offset=64
298.Linfo_string10:
299	.asciz	"char"                          # string offset=69
300.Linfo_string11:
301	.asciz	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=74
302.Linfo_string12:
303	.asciz	"main.cpp"                      # string offset=175
304.Linfo_string13:
305	.asciz	"main.dwo"                      # string offset=184
306	.section	.debug_str_offsets.dwo,"e",@progbits
307	.long	0
308	.long	12
309	.long	20
310	.long	24
311	.long	28
312	.long	41
313	.long	50
314	.long	54
315	.long	59
316	.long	64
317	.long	69
318	.long	74
319	.long	175
320	.long	184
321	.section	.debug_info.dwo,"e",@progbits
322	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
323.Ldebug_info_dwo_start0:
324	.short	5                               # DWARF version number
325	.byte	5                               # DWARF Unit Type
326	.byte	8                               # Address Size (in bytes)
327	.long	0                               # Offset Into Abbrev. Section
328	.quad	1354107878901449185
329	.byte	1                               # Abbrev [1] 0x14:0xc6 DW_TAG_compile_unit
330	.byte	11                              # DW_AT_producer
331	.short	33                              # DW_AT_language
332	.byte	12                              # DW_AT_name
333	.byte	13                              # DW_AT_dwo_name
334	.byte	2                               # Abbrev [2] 0x1a:0x11 DW_TAG_subprogram
335	.byte	0                               # DW_AT_ranges
336	.byte	1                               # DW_AT_frame_base
337	.byte	86
338	.long	72                              # DW_AT_abstract_origin
339	.byte	3                               # Abbrev [3] 0x22:0x8 DW_TAG_formal_parameter
340	.byte	2                               # DW_AT_location
341	.byte	145
342	.byte	124
343	.long	81                              # DW_AT_abstract_origin
344	.byte	0                               # End Of Children Mark
345	.byte	4                               # Abbrev [4] 0x2b:0x1d DW_TAG_subprogram
346	.byte	3                               # DW_AT_low_pc
347	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
348	.byte	1                               # DW_AT_frame_base
349	.byte	86
350	.long	94                              # DW_AT_abstract_origin
351	.byte	3                               # Abbrev [3] 0x37:0x8 DW_TAG_formal_parameter
352	.byte	2                               # DW_AT_location
353	.byte	145
354	.byte	124
355	.long	103                             # DW_AT_abstract_origin
356	.byte	5                               # Abbrev [5] 0x3f:0x8 DW_TAG_variable
357	.byte	2                               # DW_AT_location
358	.byte	145
359	.byte	120
360	.long	111                             # DW_AT_abstract_origin
361	.byte	0                               # End Of Children Mark
362	.byte	6                               # Abbrev [6] 0x48:0x12 DW_TAG_subprogram
363	.byte	0                               # DW_AT_linkage_name
364	.byte	1                               # DW_AT_name
365	.byte	0                               # DW_AT_decl_file
366	.byte	2                               # DW_AT_decl_line
367	.long	90                              # DW_AT_type
368                                        # DW_AT_external
369                                        # DW_AT_inline
370	.byte	7                               # Abbrev [7] 0x51:0x8 DW_TAG_formal_parameter
371	.byte	3                               # DW_AT_name
372	.byte	0                               # DW_AT_decl_file
373	.byte	2                               # DW_AT_decl_line
374	.long	90                              # DW_AT_type
375	.byte	0                               # End Of Children Mark
376	.byte	8                               # Abbrev [8] 0x5a:0x4 DW_TAG_base_type
377	.byte	2                               # DW_AT_name
378	.byte	5                               # DW_AT_encoding
379	.byte	4                               # DW_AT_byte_size
380	.byte	6                               # Abbrev [6] 0x5e:0x1a DW_TAG_subprogram
381	.byte	4                               # DW_AT_linkage_name
382	.byte	5                               # DW_AT_name
383	.byte	0                               # DW_AT_decl_file
384	.byte	8                               # DW_AT_decl_line
385	.long	90                              # DW_AT_type
386                                        # DW_AT_external
387                                        # DW_AT_inline
388	.byte	7                               # Abbrev [7] 0x67:0x8 DW_TAG_formal_parameter
389	.byte	3                               # DW_AT_name
390	.byte	0                               # DW_AT_decl_file
391	.byte	8                               # DW_AT_decl_line
392	.long	90                              # DW_AT_type
393	.byte	9                               # Abbrev [9] 0x6f:0x8 DW_TAG_variable
394	.byte	6                               # DW_AT_name
395	.byte	0                               # DW_AT_decl_file
396	.byte	9                               # DW_AT_decl_line
397	.long	90                              # DW_AT_type
398	.byte	0                               # End Of Children Mark
399	.byte	10                              # Abbrev [10] 0x78:0x4e DW_TAG_subprogram
400	.byte	1                               # DW_AT_ranges
401	.byte	1                               # DW_AT_frame_base
402	.byte	86
403	.byte	7                               # DW_AT_name
404	.byte	0                               # DW_AT_decl_file
405	.byte	14                              # DW_AT_decl_line
406	.long	90                              # DW_AT_type
407                                        # DW_AT_external
408	.byte	11                              # Abbrev [11] 0x83:0xb DW_TAG_formal_parameter
409	.byte	2                               # DW_AT_location
410	.byte	145
411	.byte	108
412	.byte	8                               # DW_AT_name
413	.byte	0                               # DW_AT_decl_file
414	.byte	14                              # DW_AT_decl_line
415	.long	90                              # DW_AT_type
416	.byte	11                              # Abbrev [11] 0x8e:0xb DW_TAG_formal_parameter
417	.byte	2                               # DW_AT_location
418	.byte	145
419	.byte	96
420	.byte	9                               # DW_AT_name
421	.byte	0                               # DW_AT_decl_file
422	.byte	14                              # DW_AT_decl_line
423	.long	198                             # DW_AT_type
424	.byte	12                              # Abbrev [12] 0x99:0x12 DW_TAG_inlined_subroutine
425	.long	72                              # DW_AT_abstract_origin
426	.byte	2                               # DW_AT_ranges
427	.byte	0                               # DW_AT_call_file
428	.byte	15                              # DW_AT_call_line
429	.byte	13                              # DW_AT_call_column
430	.byte	3                               # Abbrev [3] 0xa2:0x8 DW_TAG_formal_parameter
431	.byte	2                               # DW_AT_location
432	.byte	145
433	.byte	116
434	.long	81                              # DW_AT_abstract_origin
435	.byte	0                               # End Of Children Mark
436	.byte	12                              # Abbrev [12] 0xab:0x1a DW_TAG_inlined_subroutine
437	.long	94                              # DW_AT_abstract_origin
438	.byte	3                               # DW_AT_ranges
439	.byte	0                               # DW_AT_call_file
440	.byte	15                              # DW_AT_call_line
441	.byte	29                              # DW_AT_call_column
442	.byte	3                               # Abbrev [3] 0xb4:0x8 DW_TAG_formal_parameter
443	.byte	2                               # DW_AT_location
444	.byte	145
445	.byte	124
446	.long	103                             # DW_AT_abstract_origin
447	.byte	5                               # Abbrev [5] 0xbc:0x8 DW_TAG_variable
448	.byte	2                               # DW_AT_location
449	.byte	145
450	.byte	120
451	.long	111                             # DW_AT_abstract_origin
452	.byte	0                               # End Of Children Mark
453	.byte	0                               # End Of Children Mark
454	.byte	13                              # Abbrev [13] 0xc6:0x5 DW_TAG_pointer_type
455	.long	203                             # DW_AT_type
456	.byte	13                              # Abbrev [13] 0xcb:0x5 DW_TAG_pointer_type
457	.long	208                             # DW_AT_type
458	.byte	14                              # Abbrev [14] 0xd0:0x5 DW_TAG_const_type
459	.long	213                             # DW_AT_type
460	.byte	8                               # Abbrev [8] 0xd5:0x4 DW_TAG_base_type
461	.byte	10                              # DW_AT_name
462	.byte	6                               # DW_AT_encoding
463	.byte	1                               # DW_AT_byte_size
464	.byte	0                               # End Of Children Mark
465.Ldebug_info_dwo_end0:
466	.section	.debug_abbrev.dwo,"e",@progbits
467	.byte	1                               # Abbreviation Code
468	.byte	17                              # DW_TAG_compile_unit
469	.byte	1                               # DW_CHILDREN_yes
470	.byte	37                              # DW_AT_producer
471	.byte	37                              # DW_FORM_strx1
472	.byte	19                              # DW_AT_language
473	.byte	5                               # DW_FORM_data2
474	.byte	3                               # DW_AT_name
475	.byte	37                              # DW_FORM_strx1
476	.byte	118                             # DW_AT_dwo_name
477	.byte	37                              # DW_FORM_strx1
478	.byte	0                               # EOM(1)
479	.byte	0                               # EOM(2)
480	.byte	2                               # Abbreviation Code
481	.byte	46                              # DW_TAG_subprogram
482	.byte	1                               # DW_CHILDREN_yes
483	.byte	85                              # DW_AT_ranges
484	.byte	35                              # DW_FORM_rnglistx
485	.byte	64                              # DW_AT_frame_base
486	.byte	24                              # DW_FORM_exprloc
487	.byte	49                              # DW_AT_abstract_origin
488	.byte	19                              # DW_FORM_ref4
489	.byte	0                               # EOM(1)
490	.byte	0                               # EOM(2)
491	.byte	3                               # Abbreviation Code
492	.byte	5                               # DW_TAG_formal_parameter
493	.byte	0                               # DW_CHILDREN_no
494	.byte	2                               # DW_AT_location
495	.byte	24                              # DW_FORM_exprloc
496	.byte	49                              # DW_AT_abstract_origin
497	.byte	19                              # DW_FORM_ref4
498	.byte	0                               # EOM(1)
499	.byte	0                               # EOM(2)
500	.byte	4                               # Abbreviation Code
501	.byte	46                              # DW_TAG_subprogram
502	.byte	1                               # DW_CHILDREN_yes
503	.byte	17                              # DW_AT_low_pc
504	.byte	27                              # DW_FORM_addrx
505	.byte	18                              # DW_AT_high_pc
506	.byte	6                               # DW_FORM_data4
507	.byte	64                              # DW_AT_frame_base
508	.byte	24                              # DW_FORM_exprloc
509	.byte	49                              # DW_AT_abstract_origin
510	.byte	19                              # DW_FORM_ref4
511	.byte	0                               # EOM(1)
512	.byte	0                               # EOM(2)
513	.byte	5                               # Abbreviation Code
514	.byte	52                              # DW_TAG_variable
515	.byte	0                               # DW_CHILDREN_no
516	.byte	2                               # DW_AT_location
517	.byte	24                              # DW_FORM_exprloc
518	.byte	49                              # DW_AT_abstract_origin
519	.byte	19                              # DW_FORM_ref4
520	.byte	0                               # EOM(1)
521	.byte	0                               # EOM(2)
522	.byte	6                               # Abbreviation Code
523	.byte	46                              # DW_TAG_subprogram
524	.byte	1                               # DW_CHILDREN_yes
525	.byte	110                             # DW_AT_linkage_name
526	.byte	37                              # DW_FORM_strx1
527	.byte	3                               # DW_AT_name
528	.byte	37                              # DW_FORM_strx1
529	.byte	58                              # DW_AT_decl_file
530	.byte	11                              # DW_FORM_data1
531	.byte	59                              # DW_AT_decl_line
532	.byte	11                              # DW_FORM_data1
533	.byte	73                              # DW_AT_type
534	.byte	19                              # DW_FORM_ref4
535	.byte	63                              # DW_AT_external
536	.byte	25                              # DW_FORM_flag_present
537	.byte	32                              # DW_AT_inline
538	.byte	33                              # DW_FORM_implicit_const
539	.byte	1
540	.byte	0                               # EOM(1)
541	.byte	0                               # EOM(2)
542	.byte	7                               # Abbreviation Code
543	.byte	5                               # DW_TAG_formal_parameter
544	.byte	0                               # DW_CHILDREN_no
545	.byte	3                               # DW_AT_name
546	.byte	37                              # DW_FORM_strx1
547	.byte	58                              # DW_AT_decl_file
548	.byte	11                              # DW_FORM_data1
549	.byte	59                              # DW_AT_decl_line
550	.byte	11                              # DW_FORM_data1
551	.byte	73                              # DW_AT_type
552	.byte	19                              # DW_FORM_ref4
553	.byte	0                               # EOM(1)
554	.byte	0                               # EOM(2)
555	.byte	8                               # Abbreviation Code
556	.byte	36                              # DW_TAG_base_type
557	.byte	0                               # DW_CHILDREN_no
558	.byte	3                               # DW_AT_name
559	.byte	37                              # DW_FORM_strx1
560	.byte	62                              # DW_AT_encoding
561	.byte	11                              # DW_FORM_data1
562	.byte	11                              # DW_AT_byte_size
563	.byte	11                              # DW_FORM_data1
564	.byte	0                               # EOM(1)
565	.byte	0                               # EOM(2)
566	.byte	9                               # Abbreviation Code
567	.byte	52                              # DW_TAG_variable
568	.byte	0                               # DW_CHILDREN_no
569	.byte	3                               # DW_AT_name
570	.byte	37                              # DW_FORM_strx1
571	.byte	58                              # DW_AT_decl_file
572	.byte	11                              # DW_FORM_data1
573	.byte	59                              # DW_AT_decl_line
574	.byte	11                              # DW_FORM_data1
575	.byte	73                              # DW_AT_type
576	.byte	19                              # DW_FORM_ref4
577	.byte	0                               # EOM(1)
578	.byte	0                               # EOM(2)
579	.byte	10                              # Abbreviation Code
580	.byte	46                              # DW_TAG_subprogram
581	.byte	1                               # DW_CHILDREN_yes
582	.byte	85                              # DW_AT_ranges
583	.byte	35                              # DW_FORM_rnglistx
584	.byte	64                              # DW_AT_frame_base
585	.byte	24                              # DW_FORM_exprloc
586	.byte	3                               # DW_AT_name
587	.byte	37                              # DW_FORM_strx1
588	.byte	58                              # DW_AT_decl_file
589	.byte	11                              # DW_FORM_data1
590	.byte	59                              # DW_AT_decl_line
591	.byte	11                              # DW_FORM_data1
592	.byte	73                              # DW_AT_type
593	.byte	19                              # DW_FORM_ref4
594	.byte	63                              # DW_AT_external
595	.byte	25                              # DW_FORM_flag_present
596	.byte	0                               # EOM(1)
597	.byte	0                               # EOM(2)
598	.byte	11                              # Abbreviation Code
599	.byte	5                               # DW_TAG_formal_parameter
600	.byte	0                               # DW_CHILDREN_no
601	.byte	2                               # DW_AT_location
602	.byte	24                              # DW_FORM_exprloc
603	.byte	3                               # DW_AT_name
604	.byte	37                              # DW_FORM_strx1
605	.byte	58                              # DW_AT_decl_file
606	.byte	11                              # DW_FORM_data1
607	.byte	59                              # DW_AT_decl_line
608	.byte	11                              # DW_FORM_data1
609	.byte	73                              # DW_AT_type
610	.byte	19                              # DW_FORM_ref4
611	.byte	0                               # EOM(1)
612	.byte	0                               # EOM(2)
613	.byte	12                              # Abbreviation Code
614	.byte	29                              # DW_TAG_inlined_subroutine
615	.byte	1                               # DW_CHILDREN_yes
616	.byte	49                              # DW_AT_abstract_origin
617	.byte	19                              # DW_FORM_ref4
618	.byte	85                              # DW_AT_ranges
619	.byte	35                              # DW_FORM_rnglistx
620	.byte	88                              # DW_AT_call_file
621	.byte	11                              # DW_FORM_data1
622	.byte	89                              # DW_AT_call_line
623	.byte	11                              # DW_FORM_data1
624	.byte	87                              # DW_AT_call_column
625	.byte	11                              # DW_FORM_data1
626	.byte	0                               # EOM(1)
627	.byte	0                               # EOM(2)
628	.byte	13                              # Abbreviation Code
629	.byte	15                              # DW_TAG_pointer_type
630	.byte	0                               # DW_CHILDREN_no
631	.byte	73                              # DW_AT_type
632	.byte	19                              # DW_FORM_ref4
633	.byte	0                               # EOM(1)
634	.byte	0                               # EOM(2)
635	.byte	14                              # Abbreviation Code
636	.byte	38                              # DW_TAG_const_type
637	.byte	0                               # DW_CHILDREN_no
638	.byte	73                              # DW_AT_type
639	.byte	19                              # DW_FORM_ref4
640	.byte	0                               # EOM(1)
641	.byte	0                               # EOM(2)
642	.byte	0                               # EOM(3)
643	.section	.debug_rnglists.dwo,"e",@progbits
644	.long	.Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
645.Ldebug_list_header_start1:
646	.short	5                               # Version
647	.byte	8                               # Address size
648	.byte	0                               # Segment selector size
649	.long	4                               # Offset entry count
650.Lrnglists_dwo_table_base0:
651	.long	.Ldebug_ranges0-.Lrnglists_dwo_table_base0
652	.long	.Ldebug_ranges1-.Lrnglists_dwo_table_base0
653	.long	.Ldebug_ranges2-.Lrnglists_dwo_table_base0
654	.long	.Ldebug_ranges3-.Lrnglists_dwo_table_base0
655.Ldebug_ranges0:
656	.byte	3                               # DW_RLE_startx_length
657	.byte	0                               #   start index
658	.uleb128 .LBB_END0_1-_Z7doStuffi.__part.1 #   length
659	.byte	3                               # DW_RLE_startx_length
660	.byte	1                               #   start index
661	.uleb128 .LBB_END0_2-_Z7doStuffi.__part.2 #   length
662	.byte	3                               # DW_RLE_startx_length
663	.byte	2                               #   start index
664	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   length
665	.byte	0                               # DW_RLE_end_of_list
666.Ldebug_ranges1:
667	.byte	3                               # DW_RLE_startx_length
668	.byte	4                               #   start index
669	.uleb128 .LBB_END2_1-main.__part.1      #   length
670	.byte	3                               # DW_RLE_startx_length
671	.byte	5                               #   start index
672	.uleb128 .LBB_END2_2-main.__part.2      #   length
673	.byte	3                               # DW_RLE_startx_length
674	.byte	6                               #   start index
675	.uleb128 .Lfunc_end2-.Lfunc_begin2      #   length
676	.byte	0                               # DW_RLE_end_of_list
677.Ldebug_ranges2:
678	.byte	1                               # DW_RLE_base_addressx
679	.byte	6                               #   base address index
680	.byte	4                               # DW_RLE_offset_pair
681	.uleb128 .Ltmp4-.Lfunc_begin2           #   starting offset
682	.uleb128 .Lfunc_end2-.Lfunc_begin2      #   ending offset
683	.byte	3                               # DW_RLE_startx_length
684	.byte	4                               #   start index
685	.uleb128 .LBB_END2_1-main.__part.1      #   length
686	.byte	3                               # DW_RLE_startx_length
687	.byte	5                               #   start index
688	.uleb128 .Ltmp6-main.__part.2           #   length
689	.byte	0                               # DW_RLE_end_of_list
690.Ldebug_ranges3:
691	.byte	1                               # DW_RLE_base_addressx
692	.byte	5                               #   base address index
693	.byte	4                               # DW_RLE_offset_pair
694	.uleb128 .Ltmp7-main.__part.2           #   starting offset
695	.uleb128 .Ltmp8-main.__part.2           #   ending offset
696	.byte	0                               # DW_RLE_end_of_list
697.Ldebug_list_header_end1:
698	.section	.debug_addr,"",@progbits
699	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
700.Ldebug_addr_start0:
701	.short	5                               # DWARF version number
702	.byte	8                               # Address size
703	.byte	0                               # Segment selector size
704.Laddr_table_base0:
705	.quad	_Z7doStuffi.__part.1
706	.quad	_Z7doStuffi.__part.2
707	.quad	.Lfunc_begin0
708	.quad	.Lfunc_begin1
709	.quad	main.__part.1
710	.quad	main.__part.2
711	.quad	.Lfunc_begin2
712.Ldebug_addr_end0:
713	.section	.debug_gnu_pubnames,"",@progbits
714	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
715.LpubNames_start0:
716	.short	2                               # DWARF Version
717	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
718	.long	48                              # Compilation Unit Length
719	.long	72                              # DIE offset
720	.byte	48                              # Attributes: FUNCTION, EXTERNAL
721	.asciz	"doStuff"                       # External Name
722	.long	94                              # DIE offset
723	.byte	48                              # Attributes: FUNCTION, EXTERNAL
724	.asciz	"doStuff2"                      # External Name
725	.long	120                             # DIE offset
726	.byte	48                              # Attributes: FUNCTION, EXTERNAL
727	.asciz	"main"                          # External Name
728	.long	0                               # End Mark
729.LpubNames_end0:
730	.section	.debug_gnu_pubtypes,"",@progbits
731	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
732.LpubTypes_start0:
733	.short	2                               # DWARF Version
734	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
735	.long	48                              # Compilation Unit Length
736	.long	90                              # DIE offset
737	.byte	144                             # Attributes: TYPE, STATIC
738	.asciz	"int"                           # External Name
739	.long	213                             # DIE offset
740	.byte	144                             # Attributes: TYPE, STATIC
741	.asciz	"char"                          # External Name
742	.long	0                               # End Mark
743.LpubTypes_end0:
744	.ident	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"
745	.section	".note.GNU-stack","",@progbits
746	.addrsig
747	.section	.debug_line,"",@progbits
748.Lline_table_start0:
749