1 # int doStuff(int val) {
6 # int doStuffSame(int val) {
13 # int main(int argc, const char** argv) {
16 # clang++ -ffunction-sections -g2 -gdwarf-5 -gsplit-dwarf
19 .section .text._Z7doStuffi,"ax",@progbits
20 .globl _Z7doStuffi # -- Begin function _Z7doStuffi
22 .type _Z7doStuffi,@function
23 _Z7doStuffi
: # @_Z7doStuffi
25 .file 0 "." "main.cpp" md5 0x5391f0751c21da59df94bf9d3771518e
26 .loc 0 2 0 # main.cpp:2:0
30 .cfi_def_cfa_offset 16
33 .cfi_def_cfa_register %rbp
36 .loc 0 3 7 prologue_end # main.cpp:3:7
39 .loc 0 3 7 is_stmt 0 # main.cpp:3:7
43 .loc 0 4 5 is_stmt 1 # main.cpp:4:5
49 .loc 0 5 10 # main.cpp:5:10
51 .loc 0 5 3 epilogue_begin is_stmt 0 # main.cpp:5:3
57 .size _Z7doStuffi, .Lfunc_end0-_Z7doStuffi
60 .section .text._Z11doStuffSamei,"ax",@progbits
61 .globl _Z11doStuffSamei # -- Begin function _Z11doStuffSamei
63 .type _Z11doStuffSamei,@function
64 _Z11doStuffSamei
: # @_Z11doStuffSamei
66 .loc 0 8 0 is_stmt 1 # main.cpp:8:0
70 .cfi_def_cfa_offset 16
73 .cfi_def_cfa_register %rbp
76 .loc 0 9 11 prologue_end # main.cpp:9:11
79 .loc 0 9 11 is_stmt 0 # main.cpp:9:11
83 .loc 0 10 13 is_stmt 1 # main.cpp:10:13
89 .loc 0 11 16 # main.cpp:11:16
91 .loc 0 11 9 epilogue_begin is_stmt 0 # main.cpp:11:9
97 .size _Z11doStuffSamei, .Lfunc_end1-_Z11doStuffSamei
100 .section .text.main,"ax",@progbits
101 .globl main # -- Begin function main
106 .loc 0 15 0 is_stmt 1 # main.cpp:15:0
110 .cfi_def_cfa_offset 16
111 .cfi_offset %rbp, -16
113 .cfi_def_cfa_register %rbp
118 .loc 0 16 21 prologue_end # main.cpp:16:21
122 .loc 0 3 7 # main.cpp:3:7
125 .loc 0 3 7 is_stmt 0 # main.cpp:3:7
127 # %bb.1: # %if.then.i
129 .loc 0 4 5 is_stmt 1 # main.cpp:4:5
134 .LBB2_2: # %_Z7doStuffi.exit
135 .loc 0 5 10 # main.cpp:5:10
137 movl
%eax
, -28(%rbp
) # 4-byte Spill
139 .loc 0 16 41 # main.cpp:16:41
143 .loc 0 9 11 # main.cpp:9:11
146 .loc 0 9 11 is_stmt 0 # main.cpp:9:11
148 # %bb.3: # %if.then.i4
150 .loc 0 10 13 is_stmt 1 # main.cpp:10:13
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
160 .loc 0 16 5 epilogue_begin is_stmt 0 # main.cpp:16:5
166 .size main, .Lfunc_end2-main
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
194 .section .debug_info,"",@progbits
196 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
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
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
214 .section .debug_rnglists,"",@progbits
215 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
216 .Ldebug_list_header_start0:
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
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
240 .section .debug_str,"MS",@progbits,1
242 .asciz "." # string offset=0
244 .asciz "main.dwo" # string offset=45
245 .section .debug_str_offsets,"",@progbits
248 .section .debug_str_offsets.dwo,"e",@progbits
249 .long 56 # Length of String Offsets Set
252 .section .debug_str.dwo,"eMS",@progbits,1
254 .asciz "_Z7doStuffi" # string offset=0
256 .asciz "doStuff" # string offset=12
258 .asciz "int" # string offset=20
260 .asciz "val" # string offset=24
262 .asciz "_Z11doStuffSamei" # string offset=28
264 .asciz "doStuffSame" # string offset=45
266 .asciz "main" # string offset=57
268 .asciz "argc" # string offset=62
270 .asciz "argv" # string offset=67
272 .asciz "char" # string offset=72
274 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 63dbe7e808d07bdf25bad85301980bc323b0cd64)" # string offset=77
276 .asciz "main.cpp" # string offset=178
278 .asciz "main.dwo" # string offset=187
279 .section .debug_str_offsets.dwo,"e",@progbits
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
311 .long 68 # DW_AT_abstract_origin
312 .byte 3 # Abbrev [3] 0x26:0x8 DW_TAG_formal_parameter
313 .byte 2 # DW_AT_location
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
323 .long 90 # DW_AT_abstract_origin
324 .byte 3 # Abbrev [3] 0x3b:0x8 DW_TAG_formal_parameter
325 .byte 2 # DW_AT_location
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
333 .byte 0 # DW_AT_decl_file
334 .byte 2 # DW_AT_decl_line
335 .long 86 # DW_AT_type
338 .byte 5 # Abbrev [5] 0x4d:0x8 DW_TAG_formal_parameter
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
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
351 .byte 0 # DW_AT_decl_file
352 .byte 8 # DW_AT_decl_line
353 .long 86 # DW_AT_type
356 .byte 5 # Abbrev [5] 0x63:0x8 DW_TAG_formal_parameter
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
368 .byte 0 # DW_AT_decl_file
369 .byte 15 # DW_AT_decl_line
370 .long 86 # DW_AT_type
372 .byte 8 # Abbrev [8] 0x7b:0xb DW_TAG_formal_parameter
373 .byte 2 # DW_AT_location
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
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
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
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
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
434 .byte 37 # DW_FORM_strx1
435 .byte 118 # DW_AT_dwo_name
436 .byte 37 # DW_FORM_strx1
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
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
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
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
481 .byte 5 # Abbreviation Code
482 .byte 5 # DW_TAG_formal_parameter
483 .byte 0 # DW_CHILDREN_no
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
494 .byte 6 # Abbreviation Code
495 .byte 36 # DW_TAG_base_type
496 .byte 0 # DW_CHILDREN_no
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
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
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
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
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
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
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
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
571 .section .debug_rnglists.dwo,"e",@progbits
572 .long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
573 .Ldebug_list_header_start1:
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
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
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
599 .short 5 # DWARF version number
600 .byte 8 # Address size
601 .byte 0 # Segment selector size
607 .section .debug_gnu_pubnames,"",@progbits
608 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
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
624 .section .debug_gnu_pubtypes,"",@progbits
625 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
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
638 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 63dbe7e808d07bdf25bad85301980bc323b0cd64)"
639 .section ".note.GNU-stack","",@progbits
641 .section .debug_line,"",@progbits