xref: /llvm-project/llvm/test/DebugInfo/llvm-symbolizer-bbsections-test.s (revision 9f452fbf2fe04c1e352dd8bc2b34cb2a0eeec937)
1# REQUIRES: x86-registered-target
2
3# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
4# RUN: llvm-symbolizer --obj=%t.o 0x30 0x20 0x6c 0xf | FileCheck %s
5
6# CHECK:      main
7# CHECK-NEXT: llvm-symbolizer-bbsections-test.c:13
8# CHECK:      g
9# CHECK-NEXT: llvm-symbolizer-bbsections-test.c:5
10# CHECK:      main
11# CHECK-NEXT: llvm-symbolizer-bbsections-test.c:15
12# CHECK:      main
13# CHECK-NEXT: llvm-symbolizer-bbsections-test.c:18
14# How to generate this file:
15#  int f(int a) {
16#    return a + 1;
17#  }
18#
19#  int g(int a) {
20#    return a + 2;
21#  }
22#
23#  int h(int a) {
24#    return a + 3;
25#  }
26#
27#  // Use simple control flow to generate lots of basic block sections.
28#  int main(int argc, char *argv[]) {
29#    if (argc > 10)
30#      return f(argc);
31#    else if (argc > 8)
32#      return g(argc);
33#    else if (argc > 4)
34#      return h(argc);
35#    return 0;
36#  }
37#
38#  $ clang -S -fbasic-block-sections=all llvm-symbolizer-bbsections-test.cc
39#  Manually reororder the sections to place them in this order:
40#   _Z1fi
41#   main.__part.4
42#   _Z1gi
43#   main
44#   _Z1hi
45#   main.__part.5
46#   (rest)
47#  Strip the .section .text directives to have all the functions in the same
48#  section.
49#  This ensures the basic blocks are reordered non-contiguous exactly like
50#  how a linker would do it.
51	.text
52	.file	"llvm-symbolizer-bbsections-test.c"
53	#.section .text._Z1fi,"ax",@progbits
54	.globl	_Z1fi                           # -- Begin function _Z1fi
55	.p2align	4, 0x90
56	.type	_Z1fi,@function
57_Z1fi:                                  # @_Z1fi
58.Lfunc_begin0:
59	.file	1 "Examples" "llvm-symbolizer-bbsections-test.c"
60	.loc	1 1 0                           # llvm-symbolizer-bbsections-test.c:1:0
61	.cfi_startproc
62# %bb.0:
63	pushq	%rbp
64	.cfi_def_cfa_offset 16
65	.cfi_offset %rbp, -16
66	movq	%rsp, %rbp
67	.cfi_def_cfa_register %rbp
68	movl	%edi, -4(%rbp)
69.Ltmp0:
70	.loc	1 2 10 prologue_end             # llvm-symbolizer-bbsections-test.c:2:10
71	movl	-4(%rbp), %eax
72	.loc	1 2 12 is_stmt 0                # llvm-symbolizer-bbsections-test.c:2:12
73	addl	$1, %eax
74	.loc	1 2 3                           # llvm-symbolizer-bbsections-test.c:2:3
75	popq	%rbp
76	.cfi_def_cfa %rsp, 8
77	retq
78.Ltmp1:
79	.cfi_endproc
80.Lfunc_end0:
81	.size	_Z1fi, .Lfunc_end0-_Z1fi
82                                        # -- End function
83	#.section text.main,"ax",@progbits,unique,4
84main.__part.4:
85	.cfi_startproc
86	.cfi_def_cfa %rbp, 16
87	.cfi_offset %rbp, -16
88	.loc	1 18 17 is_stmt 1               # llvm-symbolizer-bbsections-test.c:18:17
89	cmpl	$4, -8(%rbp)
90.Ltmp9:
91	.loc	1 18 12 is_stmt 0               # llvm-symbolizer-bbsections-test.c:18:12
92	jle	main.__part.6
93	jmp	main.__part.5
94.LBB_END3_4:
95	.size	main.__part.4, .LBB_END3_4-main.__part.4
96	.cfi_endproc
97
98	#.section .text._Z1gi,"ax",@progbits
99	.globl	_Z1gi                           # -- Begin function _Z1gi
100	.p2align	4, 0x90
101	.type	_Z1gi,@function
102_Z1gi:                                  # @_Z1gi
103.Lfunc_begin1:
104	.loc	1 5 0 is_stmt 1                 # llvm-symbolizer-bbsections-test.c:5:0
105	.cfi_startproc
106# %bb.0:
107	pushq	%rbp
108	.cfi_def_cfa_offset 16
109	.cfi_offset %rbp, -16
110	movq	%rsp, %rbp
111	.cfi_def_cfa_register %rbp
112	movl	%edi, -4(%rbp)
113.Ltmp2:
114	.loc	1 6 10 prologue_end             # llvm-symbolizer-bbsections-test.c:6:10
115	movl	-4(%rbp), %eax
116	.loc	1 6 12 is_stmt 0                # llvm-symbolizer-bbsections-test.c:6:12
117	addl	$2, %eax
118	.loc	1 6 3                           # llvm-symbolizer-bbsections-test.c:6:3
119	popq	%rbp
120	.cfi_def_cfa %rsp, 8
121	retq
122.Ltmp3:
123	.cfi_endproc
124.Lfunc_end1:
125	.size	_Z1gi, .Lfunc_end1-_Z1gi
126                                        # -- End function
127	#.section .text.main,"ax",@progbits
128	.globl	main                            # -- Begin function main
129	.p2align	4, 0x90
130	.type	main,@function
131main:                                   # @main
132.Lfunc_begin3:
133	.loc	1 13 0 is_stmt 1                # llvm-symbolizer-bbsections-test.c:13:0
134	.cfi_startproc
135# %bb.0:
136	pushq	%rbp
137	.cfi_def_cfa_offset 16
138	.cfi_offset %rbp, -16
139	movq	%rsp, %rbp
140	.cfi_def_cfa_register %rbp
141	subq	$16, %rsp
142	movl	$0, -4(%rbp)
143	movl	%edi, -8(%rbp)
144	movq	%rsi, -16(%rbp)
145.Ltmp6:
146	.loc	1 14 12 prologue_end            # llvm-symbolizer-bbsections-test.c:14:12
147	cmpl	$10, -8(%rbp)
148.Ltmp7:
149	.loc	1 14 7 is_stmt 0                # llvm-symbolizer-bbsections-test.c:14:7
150	jle	main.__part.2
151	jmp	main.__part.1
152	.cfi_endproc
153        #.section .text._Z1hi,"ax",@progbits
154	.globl	_Z1hi                           # -- Begin function _Z1hi
155	.p2align	4, 0x90
156	.type	_Z1hi,@function
157_Z1hi:                                  # @_Z1hi
158.Lfunc_begin2:
159	.loc	1 9 0 is_stmt 1                 # llvm-symbolizer-bbsections-test.c:9:0
160	.cfi_startproc
161# %bb.0:
162	pushq	%rbp
163	.cfi_def_cfa_offset 16
164	.cfi_offset %rbp, -16
165	movq	%rsp, %rbp
166	.cfi_def_cfa_register %rbp
167	movl	%edi, -4(%rbp)
168.Ltmp4:
169	.loc	1 10 10 prologue_end            # llvm-symbolizer-bbsections-test.c:10:10
170	movl	-4(%rbp), %eax
171	.loc	1 10 12 is_stmt 0               # llvm-symbolizer-bbsections-test.c:10:12
172	addl	$3, %eax
173	.loc	1 10 3                          # llvm-symbolizer-bbsections-test.c:10:3
174	popq	%rbp
175	.cfi_def_cfa %rsp, 8
176	retq
177.Ltmp5:
178	.cfi_endproc
179.Lfunc_end2:
180	.size	_Z1hi, .Lfunc_end2-_Z1hi
181                                        # -- End function
182	#.section .text.main,"ax",@progbits,unique,5
183main.__part.5:
184	.cfi_startproc
185	.cfi_def_cfa %rbp, 16
186	.cfi_offset %rbp, -16
187	.loc	1 19 14 is_stmt 1               # llvm-symbolizer-bbsections-test.c:19:14
188	movl	-8(%rbp), %edi
189	.loc	1 19 12 is_stmt 0               # llvm-symbolizer-bbsections-test.c:19:12
190	callq	_Z1hi
191	.loc	1 19 5                          # llvm-symbolizer-bbsections-test.c:19:5
192	movl	%eax, -4(%rbp)
193	jmp	main.__part.9
194.Ltmp10:
195.LBB_END3_5:
196	.size	main.__part.5, .LBB_END3_5-main.__part.5
197	.cfi_endproc
198	#.section .text.main,"ax",@progbits,unique,1
199main.__part.1:
200	.cfi_startproc
201	.cfi_def_cfa %rbp, 16
202	.cfi_offset %rbp, -16
203	.loc	1 15 14 is_stmt 1               # llvm-symbolizer-bbsections-test.c:15:14
204	movl	-8(%rbp), %edi
205	.loc	1 15 12 is_stmt 0               # llvm-symbolizer-bbsections-test.c:15:12
206	callq	_Z1fi
207	.loc	1 15 5                          # llvm-symbolizer-bbsections-test.c:15:5
208	movl	%eax, -4(%rbp)
209	jmp	main.__part.9
210.LBB_END3_1:
211	.size	main.__part.1, .LBB_END3_1-main.__part.1
212	.cfi_endproc
213	#.section .text.main,"ax",@progbits,unique,2
214main.__part.2:
215	.cfi_startproc
216	.cfi_def_cfa %rbp, 16
217	.cfi_offset %rbp, -16
218	.loc	1 16 17 is_stmt 1               # llvm-symbolizer-bbsections-test.c:16:17
219	cmpl	$8, -8(%rbp)
220.Ltmp8:
221	.loc	1 16 12 is_stmt 0               # llvm-symbolizer-bbsections-test.c:16:12
222	jle	main.__part.4
223	jmp	main.__part.3
224.LBB_END3_2:
225	.size	main.__part.2, .LBB_END3_2-main.__part.2
226	.cfi_endproc
227	#.section .text.main,"ax",@progbits,unique,3
228main.__part.3:
229	.cfi_startproc
230	.cfi_def_cfa %rbp, 16
231	.cfi_offset %rbp, -16
232	.loc	1 17 14 is_stmt 1               # llvm-symbolizer-bbsections-test.c:17:14
233	movl	-8(%rbp), %edi
234	.loc	1 17 12 is_stmt 0               # llvm-symbolizer-bbsections-test.c:17:12
235	callq	_Z1gi
236	.loc	1 17 5                          # llvm-symbolizer-bbsections-test.c:17:5
237	movl	%eax, -4(%rbp)
238	jmp	main.__part.9
239.LBB_END3_3:
240	.size	main.__part.3, .LBB_END3_3-main.__part.3
241	.cfi_endproc
242	#.section .text.main,"ax",@progbits,unique,6
243main.__part.6:
244	.cfi_startproc
245	.cfi_def_cfa %rbp, 16
246	.cfi_offset %rbp, -16
247	.loc	1 0 5                           # llvm-symbolizer-bbsections-test.c:0:5
248	jmp	main.__part.7
249	jmp	main.__part.7
250.LBB_END3_6:
251	.size	main.__part.6, .LBB_END3_6-main.__part.6
252	.cfi_endproc
253	#.section .text.main,"ax",@progbits,unique,7
254main.__part.7:
255	.cfi_startproc
256	.cfi_def_cfa %rbp, 16
257	.cfi_offset %rbp, -16
258	jmp	main.__part.8
259	jmp	main.__part.8
260.LBB_END3_7:
261	.size	main.__part.7, .LBB_END3_7-main.__part.7
262	.cfi_endproc
263	#.section .text.main,"ax",@progbits,unique,8
264main.__part.8:
265	.cfi_startproc
266	.cfi_def_cfa %rbp, 16
267	.cfi_offset %rbp, -16
268	.loc	1 20 3 is_stmt 1                # llvm-symbolizer-bbsections-test.c:20:3
269	movl	$0, -4(%rbp)
270	jmp	main.__part.9
271.LBB_END3_8:
272	.size	main.__part.8, .LBB_END3_8-main.__part.8
273	.cfi_endproc
274	#.section .text.main,"ax",@progbits,unique,9
275main.__part.9:
276	.cfi_startproc
277	.cfi_def_cfa %rbp, 16
278	.cfi_offset %rbp, -16
279	.loc	1 21 1                          # llvm-symbolizer-bbsections-test.c:21:1
280	movl	-4(%rbp), %eax
281	addq	$16, %rsp
282	popq	%rbp
283	.cfi_def_cfa %rsp, 8
284	retq
285.Ltmp11:
286.LBB_END3_9:
287	.size	main.__part.9, .LBB_END3_9-main.__part.9
288	.cfi_endproc
289	#.section .text.main,"ax",@progbits
290.Lfunc_end3:
291	.size	main, .Lfunc_end3-main
292                                        # -- End function
293	.section	.debug_abbrev,"",@progbits
294	.byte	1                               # Abbreviation Code
295	.byte	17                              # DW_TAG_compile_unit
296	.byte	1                               # DW_CHILDREN_yes
297	.byte	37                              # DW_AT_producer
298	.byte	14                              # DW_FORM_strp
299	.byte	19                              # DW_AT_language
300	.byte	5                               # DW_FORM_data2
301	.byte	3                               # DW_AT_name
302	.byte	14                              # DW_FORM_strp
303	.byte	16                              # DW_AT_stmt_list
304	.byte	23                              # DW_FORM_sec_offset
305	.byte	27                              # DW_AT_comp_dir
306	.byte	14                              # DW_FORM_strp
307	.byte	17                              # DW_AT_low_pc
308	.byte	1                               # DW_FORM_addr
309	.byte	85                              # DW_AT_ranges
310	.byte	23                              # DW_FORM_sec_offset
311	.byte	0                               # EOM(1)
312	.byte	0                               # EOM(2)
313	.byte	2                               # Abbreviation Code
314	.byte	46                              # DW_TAG_subprogram
315	.byte	1                               # DW_CHILDREN_yes
316	.byte	17                              # DW_AT_low_pc
317	.byte	1                               # DW_FORM_addr
318	.byte	18                              # DW_AT_high_pc
319	.byte	6                               # DW_FORM_data4
320	.byte	64                              # DW_AT_frame_base
321	.byte	24                              # DW_FORM_exprloc
322	.byte	110                             # DW_AT_linkage_name
323	.byte	14                              # DW_FORM_strp
324	.byte	3                               # DW_AT_name
325	.byte	14                              # DW_FORM_strp
326	.byte	58                              # DW_AT_decl_file
327	.byte	11                              # DW_FORM_data1
328	.byte	59                              # DW_AT_decl_line
329	.byte	11                              # DW_FORM_data1
330	.byte	73                              # DW_AT_type
331	.byte	19                              # DW_FORM_ref4
332	.byte	63                              # DW_AT_external
333	.byte	25                              # DW_FORM_flag_present
334	.byte	0                               # EOM(1)
335	.byte	0                               # EOM(2)
336	.byte	3                               # Abbreviation Code
337	.byte	5                               # DW_TAG_formal_parameter
338	.byte	0                               # DW_CHILDREN_no
339	.byte	2                               # DW_AT_location
340	.byte	24                              # DW_FORM_exprloc
341	.byte	3                               # DW_AT_name
342	.byte	14                              # DW_FORM_strp
343	.byte	58                              # DW_AT_decl_file
344	.byte	11                              # DW_FORM_data1
345	.byte	59                              # DW_AT_decl_line
346	.byte	11                              # DW_FORM_data1
347	.byte	73                              # DW_AT_type
348	.byte	19                              # DW_FORM_ref4
349	.byte	0                               # EOM(1)
350	.byte	0                               # EOM(2)
351	.byte	4                               # Abbreviation Code
352	.byte	46                              # DW_TAG_subprogram
353	.byte	1                               # DW_CHILDREN_yes
354	.byte	85                              # DW_AT_ranges
355	.byte	23                              # DW_FORM_sec_offset
356	.byte	64                              # DW_AT_frame_base
357	.byte	24                              # DW_FORM_exprloc
358	.byte	3                               # DW_AT_name
359	.byte	14                              # DW_FORM_strp
360	.byte	58                              # DW_AT_decl_file
361	.byte	11                              # DW_FORM_data1
362	.byte	59                              # DW_AT_decl_line
363	.byte	11                              # DW_FORM_data1
364	.byte	73                              # DW_AT_type
365	.byte	19                              # DW_FORM_ref4
366	.byte	63                              # DW_AT_external
367	.byte	25                              # DW_FORM_flag_present
368	.byte	0                               # EOM(1)
369	.byte	0                               # EOM(2)
370	.byte	5                               # Abbreviation Code
371	.byte	36                              # DW_TAG_base_type
372	.byte	0                               # DW_CHILDREN_no
373	.byte	3                               # DW_AT_name
374	.byte	14                              # DW_FORM_strp
375	.byte	62                              # DW_AT_encoding
376	.byte	11                              # DW_FORM_data1
377	.byte	11                              # DW_AT_byte_size
378	.byte	11                              # DW_FORM_data1
379	.byte	0                               # EOM(1)
380	.byte	0                               # EOM(2)
381	.byte	6                               # Abbreviation Code
382	.byte	15                              # DW_TAG_pointer_type
383	.byte	0                               # DW_CHILDREN_no
384	.byte	73                              # DW_AT_type
385	.byte	19                              # DW_FORM_ref4
386	.byte	0                               # EOM(1)
387	.byte	0                               # EOM(2)
388	.byte	0                               # EOM(3)
389	.section	.debug_info,"",@progbits
390.Lcu_begin0:
391	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
392.Ldebug_info_start0:
393	.short	4                               # DWARF version number
394	.long	.debug_abbrev                   # Offset Into Abbrev. Section
395	.byte	8                               # Address Size (in bytes)
396	.byte	1                               # Abbrev [1] 0xb:0xea DW_TAG_compile_unit
397	.long	.Linfo_string0                  # DW_AT_producer
398	.short	33                              # DW_AT_language
399	.long	.Linfo_string1                  # DW_AT_name
400	.long	.Lline_table_start0             # DW_AT_stmt_list
401	.long	.Linfo_string2                  # DW_AT_comp_dir
402	.quad	0                               # DW_AT_low_pc
403	.long	.Ldebug_ranges1                 # DW_AT_ranges
404	.byte	2                               # Abbrev [2] 0x2a:0x2c DW_TAG_subprogram
405	.quad	.Lfunc_begin0                   # DW_AT_low_pc
406	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
407	.byte	1                               # DW_AT_frame_base
408	.byte	86
409	.long	.Linfo_string3                  # DW_AT_linkage_name
410	.long	.Linfo_string4                  # DW_AT_name
411	.byte	1                               # DW_AT_decl_file
412	.byte	1                               # DW_AT_decl_line
413	.long	220                             # DW_AT_type
414                                        # DW_AT_external
415	.byte	3                               # Abbrev [3] 0x47:0xe DW_TAG_formal_parameter
416	.byte	2                               # DW_AT_location
417	.byte	145
418	.byte	124
419	.long	.Linfo_string11                 # DW_AT_name
420	.byte	1                               # DW_AT_decl_file
421	.byte	1                               # DW_AT_decl_line
422	.long	220                             # DW_AT_type
423	.byte	0                               # End Of Children Mark
424	.byte	2                               # Abbrev [2] 0x56:0x2c DW_TAG_subprogram
425	.quad	.Lfunc_begin1                   # DW_AT_low_pc
426	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
427	.byte	1                               # DW_AT_frame_base
428	.byte	86
429	.long	.Linfo_string6                  # DW_AT_linkage_name
430	.long	.Linfo_string7                  # DW_AT_name
431	.byte	1                               # DW_AT_decl_file
432	.byte	5                               # DW_AT_decl_line
433	.long	220                             # DW_AT_type
434                                        # DW_AT_external
435	.byte	3                               # Abbrev [3] 0x73:0xe DW_TAG_formal_parameter
436	.byte	2                               # DW_AT_location
437	.byte	145
438	.byte	124
439	.long	.Linfo_string11                 # DW_AT_name
440	.byte	1                               # DW_AT_decl_file
441	.byte	5                               # DW_AT_decl_line
442	.long	220                             # DW_AT_type
443	.byte	0                               # End Of Children Mark
444	.byte	2                               # Abbrev [2] 0x82:0x2c DW_TAG_subprogram
445	.quad	.Lfunc_begin2                   # DW_AT_low_pc
446	.long	.Lfunc_end2-.Lfunc_begin2       # DW_AT_high_pc
447	.byte	1                               # DW_AT_frame_base
448	.byte	86
449	.long	.Linfo_string8                  # DW_AT_linkage_name
450	.long	.Linfo_string9                  # DW_AT_name
451	.byte	1                               # DW_AT_decl_file
452	.byte	9                               # DW_AT_decl_line
453	.long	220                             # DW_AT_type
454                                        # DW_AT_external
455	.byte	3                               # Abbrev [3] 0x9f:0xe DW_TAG_formal_parameter
456	.byte	2                               # DW_AT_location
457	.byte	145
458	.byte	124
459	.long	.Linfo_string11                 # DW_AT_name
460	.byte	1                               # DW_AT_decl_file
461	.byte	9                               # DW_AT_decl_line
462	.long	220                             # DW_AT_type
463	.byte	0                               # End Of Children Mark
464	.byte	4                               # Abbrev [4] 0xae:0x2e DW_TAG_subprogram
465	.long	.Ldebug_ranges0                 # DW_AT_ranges
466	.byte	1                               # DW_AT_frame_base
467	.byte	86
468	.long	.Linfo_string10                 # DW_AT_name
469	.byte	1                               # DW_AT_decl_file
470	.byte	13                              # DW_AT_decl_line
471	.long	220                             # DW_AT_type
472                                        # DW_AT_external
473	.byte	3                               # Abbrev [3] 0xbf:0xe DW_TAG_formal_parameter
474	.byte	2                               # DW_AT_location
475	.byte	145
476	.byte	120
477	.long	.Linfo_string12                 # DW_AT_name
478	.byte	1                               # DW_AT_decl_file
479	.byte	13                              # DW_AT_decl_line
480	.long	220                             # DW_AT_type
481	.byte	3                               # Abbrev [3] 0xcd:0xe DW_TAG_formal_parameter
482	.byte	2                               # DW_AT_location
483	.byte	145
484	.byte	112
485	.long	.Linfo_string13                 # DW_AT_name
486	.byte	1                               # DW_AT_decl_file
487	.byte	13                              # DW_AT_decl_line
488	.long	227                             # DW_AT_type
489	.byte	0                               # End Of Children Mark
490	.byte	5                               # Abbrev [5] 0xdc:0x7 DW_TAG_base_type
491	.long	.Linfo_string5                  # DW_AT_name
492	.byte	5                               # DW_AT_encoding
493	.byte	4                               # DW_AT_byte_size
494	.byte	6                               # Abbrev [6] 0xe3:0x5 DW_TAG_pointer_type
495	.long	232                             # DW_AT_type
496	.byte	6                               # Abbrev [6] 0xe8:0x5 DW_TAG_pointer_type
497	.long	237                             # DW_AT_type
498	.byte	5                               # Abbrev [5] 0xed:0x7 DW_TAG_base_type
499	.long	.Linfo_string14                 # DW_AT_name
500	.byte	6                               # DW_AT_encoding
501	.byte	1                               # DW_AT_byte_size
502	.byte	0                               # End Of Children Mark
503.Ldebug_info_end0:
504	.section	.debug_ranges,"",@progbits
505.Ldebug_ranges0:
506	.quad	main.__part.1
507	.quad	.LBB_END3_1
508	.quad	main.__part.2
509	.quad	.LBB_END3_2
510	.quad	main.__part.3
511	.quad	.LBB_END3_3
512	.quad	main.__part.4
513	.quad	.LBB_END3_4
514	.quad	main.__part.5
515	.quad	.LBB_END3_5
516	.quad	main.__part.6
517	.quad	.LBB_END3_6
518	.quad	main.__part.7
519	.quad	.LBB_END3_7
520	.quad	main.__part.8
521	.quad	.LBB_END3_8
522	.quad	main.__part.9
523	.quad	.LBB_END3_9
524	.quad	.Lfunc_begin3
525	.quad	.Lfunc_end3
526	.quad	0
527	.quad	0
528.Ldebug_ranges1:
529	.quad	.Lfunc_begin0
530	.quad	.Lfunc_end0
531	.quad	.Lfunc_begin1
532	.quad	.Lfunc_end1
533	.quad	.Lfunc_begin2
534	.quad	.Lfunc_end2
535	.quad	main.__part.1
536	.quad	.LBB_END3_1
537	.quad	main.__part.2
538	.quad	.LBB_END3_2
539	.quad	main.__part.3
540	.quad	.LBB_END3_3
541	.quad	main.__part.4
542	.quad	.LBB_END3_4
543	.quad	main.__part.5
544	.quad	.LBB_END3_5
545	.quad	main.__part.6
546	.quad	.LBB_END3_6
547	.quad	main.__part.7
548	.quad	.LBB_END3_7
549	.quad	main.__part.8
550	.quad	.LBB_END3_8
551	.quad	main.__part.9
552	.quad	.LBB_END3_9
553	.quad	.Lfunc_begin3
554	.quad	.Lfunc_end3
555	.quad	0
556	.quad	0
557	.section	.debug_str,"MS",@progbits,1
558.Linfo_string0:
559	.asciz	"clang version 12.0.0 (git@github.com:llvm/llvm-project.git bfa6ca07a8cda0ab889b7fee0b914907ce594e11)" # string offset=0
560.Linfo_string1:
561	.asciz	"llvm-symbolizer-bbsections-test.c" # string offset=101
562.Linfo_string2:
563	.asciz	"Examples" # string offset=135
564.Linfo_string3:
565	.asciz	"_Z1fi"                         # string offset=182
566.Linfo_string4:
567	.asciz	"f"                             # string offset=188
568.Linfo_string5:
569	.asciz	"int"                           # string offset=190
570.Linfo_string6:
571	.asciz	"_Z1gi"                         # string offset=194
572.Linfo_string7:
573	.asciz	"g"                             # string offset=200
574.Linfo_string8:
575	.asciz	"_Z1hi"                         # string offset=202
576.Linfo_string9:
577	.asciz	"h"                             # string offset=208
578.Linfo_string10:
579	.asciz	"main"                          # string offset=210
580.Linfo_string11:
581	.asciz	"a"                             # string offset=215
582.Linfo_string12:
583	.asciz	"argc"                          # string offset=217
584.Linfo_string13:
585	.asciz	"argv"                          # string offset=222
586.Linfo_string14:
587	.asciz	"char"                          # string offset=227
588	.ident	"clang version 12.0.0 (git@github.com:llvm/llvm-project.git bfa6ca07a8cda0ab889b7fee0b914907ce594e11)"
589	.section	".note.GNU-stack","",@progbits
590	.addrsig
591	.addrsig_sym _Z1fi
592	.addrsig_sym _Z1gi
593	.addrsig_sym _Z1hi
594	.section	.debug_line,"",@progbits
595.Lline_table_start0:
596