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