386 lines · plain
1# clang++ -fbasic-block-sections=all -ffunction-sections -g2 -gdwarf-52# int doStuff(int val) {3# if (val)4# ++val;5# return val;6# }7#8# int main(int argc, const char** argv) {9# return doStuff(argc);10# }11 .text12 .file "main.cpp"13 .section .text._Z7doStuffi,"ax",@progbits14 .globl _Z7doStuffi # -- Begin function _Z7doStuffi15 .p2align 4, 0x9016 .type _Z7doStuffi,@function17_Z7doStuffi: # @_Z7doStuffi18.Lfunc_begin0:19 .file 0 "/subprogramRanges" "main.cpp" md5 0x45fd34ef778739dca24be206894f1d1520 .loc 0 1 0 # main.cpp:1:021 .cfi_startproc22# %bb.0: # %entry23 pushq %rbp24 .cfi_def_cfa_offset 1625 .cfi_offset %rbp, -1626 movq %rsp, %rbp27 .cfi_def_cfa_register %rbp28 movl %edi, -4(%rbp)29.Ltmp0:30 .loc 0 2 7 prologue_end # main.cpp:2:731 cmpl $0, -4(%rbp)32.Ltmp1:33 .loc 0 2 7 is_stmt 0 # main.cpp:2:734 je _Z7doStuffi.__part.235 jmp _Z7doStuffi.__part.136.LBB_END0_0:37 .cfi_endproc38 .section .text._Z7doStuffi,"ax",@progbits,unique,139_Z7doStuffi.__part.1: # %if.then40 .cfi_startproc41 .cfi_def_cfa %rbp, 1642 .cfi_offset %rbp, -1643 .loc 0 3 5 is_stmt 1 # main.cpp:3:544 movl -4(%rbp), %eax45 addl $1, %eax46 movl %eax, -4(%rbp)47 jmp _Z7doStuffi.__part.248.LBB_END0_1:49 .size _Z7doStuffi.__part.1, .LBB_END0_1-_Z7doStuffi.__part.150 .cfi_endproc51 .section .text._Z7doStuffi,"ax",@progbits,unique,252_Z7doStuffi.__part.2: # %if.end53 .cfi_startproc54 .cfi_def_cfa %rbp, 1655 .cfi_offset %rbp, -1656 .loc 0 4 10 # main.cpp:4:1057 movl -4(%rbp), %eax58 .loc 0 4 3 epilogue_begin is_stmt 0 # main.cpp:4:359 popq %rbp60 .cfi_def_cfa %rsp, 861 retq62.LBB_END0_2:63 .size _Z7doStuffi.__part.2, .LBB_END0_2-_Z7doStuffi.__part.264 .cfi_endproc65 .section .text._Z7doStuffi,"ax",@progbits66.Lfunc_end0:67 .size _Z7doStuffi, .Lfunc_end0-_Z7doStuffi68 # -- End function69 .section .text.main,"ax",@progbits70 .globl main # -- Begin function main71 .p2align 4, 0x9072 .type main,@function73main: # @main74.Lfunc_begin1:75 .loc 0 7 0 is_stmt 1 # main.cpp:7:076 .cfi_startproc77# %bb.0: # %entry78 pushq %rbp79 .cfi_def_cfa_offset 1680 .cfi_offset %rbp, -1681 movq %rsp, %rbp82 .cfi_def_cfa_register %rbp83 subq $16, %rsp84 movl $0, -4(%rbp)85 movl %edi, -8(%rbp)86 movq %rsi, -16(%rbp)87.Ltmp2:88 .loc 0 8 21 prologue_end # main.cpp:8:2189 movl -8(%rbp), %edi90 .loc 0 8 13 is_stmt 0 # main.cpp:8:1391 callq _Z7doStuffi92 .loc 0 8 5 epilogue_begin # main.cpp:8:593 addq $16, %rsp94 popq %rbp95 .cfi_def_cfa %rsp, 896 retq97.LBB_END1_0:98 .cfi_endproc99.Lfunc_end1:100 .size main, .Lfunc_end1-main101 # -- End function102 .section .debug_abbrev,"",@progbits103 .byte 1 # Abbreviation Code104 .byte 17 # DW_TAG_compile_unit105 .byte 1 # DW_CHILDREN_yes106 .byte 37 # DW_AT_producer107 .byte 37 # DW_FORM_strx1108 .byte 19 # DW_AT_language109 .byte 5 # DW_FORM_data2110 .byte 3 # DW_AT_name111 .byte 37 # DW_FORM_strx1112 .byte 114 # DW_AT_str_offsets_base113 .byte 23 # DW_FORM_sec_offset114 .byte 16 # DW_AT_stmt_list115 .byte 23 # DW_FORM_sec_offset116 .byte 27 # DW_AT_comp_dir117 .byte 37 # DW_FORM_strx1118 .byte 17 # DW_AT_low_pc119 .byte 1 # DW_FORM_addr120 .byte 85 # DW_AT_ranges121 .byte 35 # DW_FORM_rnglistx122 .byte 115 # DW_AT_addr_base123 .byte 23 # DW_FORM_sec_offset124 .byte 116 # DW_AT_rnglists_base125 .byte 23 # DW_FORM_sec_offset126 .byte 0 # EOM(1)127 .byte 0 # EOM(2)128 .byte 2 # Abbreviation Code129 .byte 46 # DW_TAG_subprogram130 .byte 1 # DW_CHILDREN_yes131 .byte 85 # DW_AT_ranges132 .byte 35 # DW_FORM_rnglistx133 .byte 64 # DW_AT_frame_base134 .byte 24 # DW_FORM_exprloc135 .byte 110 # DW_AT_linkage_name136 .byte 37 # DW_FORM_strx1137 .byte 3 # DW_AT_name138 .byte 37 # DW_FORM_strx1139 .byte 58 # DW_AT_decl_file140 .byte 11 # DW_FORM_data1141 .byte 59 # DW_AT_decl_line142 .byte 11 # DW_FORM_data1143 .byte 73 # DW_AT_type144 .byte 19 # DW_FORM_ref4145 .byte 63 # DW_AT_external146 .byte 25 # DW_FORM_flag_present147 .byte 0 # EOM(1)148 .byte 0 # EOM(2)149 .byte 3 # Abbreviation Code150 .byte 5 # DW_TAG_formal_parameter151 .byte 0 # DW_CHILDREN_no152 .byte 2 # DW_AT_location153 .byte 24 # DW_FORM_exprloc154 .byte 3 # DW_AT_name155 .byte 37 # DW_FORM_strx1156 .byte 58 # DW_AT_decl_file157 .byte 11 # DW_FORM_data1158 .byte 59 # DW_AT_decl_line159 .byte 11 # DW_FORM_data1160 .byte 73 # DW_AT_type161 .byte 19 # DW_FORM_ref4162 .byte 0 # EOM(1)163 .byte 0 # EOM(2)164 .byte 4 # Abbreviation Code165 .byte 46 # DW_TAG_subprogram166 .byte 1 # DW_CHILDREN_yes167 .byte 17 # DW_AT_low_pc168 .byte 27 # DW_FORM_addrx169 .byte 18 # DW_AT_high_pc170 .byte 6 # DW_FORM_data4171 .byte 64 # DW_AT_frame_base172 .byte 24 # DW_FORM_exprloc173 .byte 3 # DW_AT_name174 .byte 37 # DW_FORM_strx1175 .byte 58 # DW_AT_decl_file176 .byte 11 # DW_FORM_data1177 .byte 59 # DW_AT_decl_line178 .byte 11 # DW_FORM_data1179 .byte 73 # DW_AT_type180 .byte 19 # DW_FORM_ref4181 .byte 63 # DW_AT_external182 .byte 25 # DW_FORM_flag_present183 .byte 0 # EOM(1)184 .byte 0 # EOM(2)185 .byte 5 # Abbreviation Code186 .byte 36 # DW_TAG_base_type187 .byte 0 # DW_CHILDREN_no188 .byte 3 # DW_AT_name189 .byte 37 # DW_FORM_strx1190 .byte 62 # DW_AT_encoding191 .byte 11 # DW_FORM_data1192 .byte 11 # DW_AT_byte_size193 .byte 11 # DW_FORM_data1194 .byte 0 # EOM(1)195 .byte 0 # EOM(2)196 .byte 6 # Abbreviation Code197 .byte 15 # DW_TAG_pointer_type198 .byte 0 # DW_CHILDREN_no199 .byte 73 # DW_AT_type200 .byte 19 # DW_FORM_ref4201 .byte 0 # EOM(1)202 .byte 0 # EOM(2)203 .byte 7 # Abbreviation Code204 .byte 38 # DW_TAG_const_type205 .byte 0 # DW_CHILDREN_no206 .byte 73 # DW_AT_type207 .byte 19 # DW_FORM_ref4208 .byte 0 # EOM(1)209 .byte 0 # EOM(2)210 .byte 0 # EOM(3)211 .section .debug_info,"",@progbits212.Lcu_begin0:213 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit214.Ldebug_info_start0:215 .short 5 # DWARF version number216 .byte 1 # DWARF Unit Type217 .byte 8 # Address Size (in bytes)218 .long .debug_abbrev # Offset Into Abbrev. Section219 .byte 1 # Abbrev [1] 0xc:0x75 DW_TAG_compile_unit220 .byte 0 # DW_AT_producer221 .short 33 # DW_AT_language222 .byte 1 # DW_AT_name223 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base224 .long .Lline_table_start0 # DW_AT_stmt_list225 .byte 2 # DW_AT_comp_dir226 .quad 0 # DW_AT_low_pc227 .byte 1 # DW_AT_ranges228 .long .Laddr_table_base0 # DW_AT_addr_base229 .long .Lrnglists_table_base0 # DW_AT_rnglists_base230 .byte 2 # Abbrev [2] 0x2b:0x18 DW_TAG_subprogram231 .byte 0 # DW_AT_ranges232 .byte 1 # DW_AT_frame_base233 .byte 86234 .byte 3 # DW_AT_linkage_name235 .byte 4 # DW_AT_name236 .byte 0 # DW_AT_decl_file237 .byte 1 # DW_AT_decl_line238 .long 105 # DW_AT_type239 # DW_AT_external240 .byte 3 # Abbrev [3] 0x37:0xb DW_TAG_formal_parameter241 .byte 2 # DW_AT_location242 .byte 145243 .byte 124244 .byte 7 # DW_AT_name245 .byte 0 # DW_AT_decl_file246 .byte 1 # DW_AT_decl_line247 .long 105 # DW_AT_type248 .byte 0 # End Of Children Mark249 .byte 4 # Abbrev [4] 0x43:0x26 DW_TAG_subprogram250 .byte 3 # DW_AT_low_pc251 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc252 .byte 1 # DW_AT_frame_base253 .byte 86254 .byte 6 # DW_AT_name255 .byte 0 # DW_AT_decl_file256 .byte 7 # DW_AT_decl_line257 .long 105 # DW_AT_type258 # DW_AT_external259 .byte 3 # Abbrev [3] 0x52:0xb DW_TAG_formal_parameter260 .byte 2 # DW_AT_location261 .byte 145262 .byte 120263 .byte 8 # DW_AT_name264 .byte 0 # DW_AT_decl_file265 .byte 7 # DW_AT_decl_line266 .long 105 # DW_AT_type267 .byte 3 # Abbrev [3] 0x5d:0xb DW_TAG_formal_parameter268 .byte 2 # DW_AT_location269 .byte 145270 .byte 112271 .byte 9 # DW_AT_name272 .byte 0 # DW_AT_decl_file273 .byte 7 # DW_AT_decl_line274 .long 109 # DW_AT_type275 .byte 0 # End Of Children Mark276 .byte 5 # Abbrev [5] 0x69:0x4 DW_TAG_base_type277 .byte 5 # DW_AT_name278 .byte 5 # DW_AT_encoding279 .byte 4 # DW_AT_byte_size280 .byte 6 # Abbrev [6] 0x6d:0x5 DW_TAG_pointer_type281 .long 114 # DW_AT_type282 .byte 6 # Abbrev [6] 0x72:0x5 DW_TAG_pointer_type283 .long 119 # DW_AT_type284 .byte 7 # Abbrev [7] 0x77:0x5 DW_TAG_const_type285 .long 124 # DW_AT_type286 .byte 5 # Abbrev [5] 0x7c:0x4 DW_TAG_base_type287 .byte 10 # DW_AT_name288 .byte 6 # DW_AT_encoding289 .byte 1 # DW_AT_byte_size290 .byte 0 # End Of Children Mark291.Ldebug_info_end0:292 .section .debug_rnglists,"",@progbits293 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length294.Ldebug_list_header_start0:295 .short 5 # Version296 .byte 8 # Address size297 .byte 0 # Segment selector size298 .long 2 # Offset entry count299.Lrnglists_table_base0:300 .long .Ldebug_ranges0-.Lrnglists_table_base0301 .long .Ldebug_ranges1-.Lrnglists_table_base0302.Ldebug_ranges0:303 .byte 3 # DW_RLE_startx_length304 .byte 0 # start index305 .uleb128 .LBB_END0_1-_Z7doStuffi.__part.1 # length306 .byte 3 # DW_RLE_startx_length307 .byte 1 # start index308 .uleb128 .LBB_END0_2-_Z7doStuffi.__part.2 # length309 .byte 3 # DW_RLE_startx_length310 .byte 2 # start index311 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length312 .byte 0 # DW_RLE_end_of_list313.Ldebug_ranges1:314 .byte 3 # DW_RLE_startx_length315 .byte 0 # start index316 .uleb128 .LBB_END0_1-_Z7doStuffi.__part.1 # length317 .byte 3 # DW_RLE_startx_length318 .byte 1 # start index319 .uleb128 .LBB_END0_2-_Z7doStuffi.__part.2 # length320 .byte 3 # DW_RLE_startx_length321 .byte 2 # start index322 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length323 .byte 3 # DW_RLE_startx_length324 .byte 3 # start index325 .uleb128 .Lfunc_end1-.Lfunc_begin1 # length326 .byte 0 # DW_RLE_end_of_list327.Ldebug_list_header_end0:328 .section .debug_str_offsets,"",@progbits329 .long 48 # Length of String Offsets Set330 .short 5331 .short 0332.Lstr_offsets_base0:333 .section .debug_str,"MS",@progbits,1334.Linfo_string0:335 .asciz "clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)" # string offset=0336.Linfo_string1:337 .asciz "main.cpp" # string offset=105338.Linfo_string2:339 .asciz "/subprogramRanges" # string offset=114340.Linfo_string3:341 .asciz "_Z7doStuffi" # string offset=169342.Linfo_string4:343 .asciz "doStuff" # string offset=181344.Linfo_string5:345 .asciz "int" # string offset=189346.Linfo_string6:347 .asciz "main" # string offset=193348.Linfo_string7:349 .asciz "val" # string offset=198350.Linfo_string8:351 .asciz "argc" # string offset=202352.Linfo_string9:353 .asciz "argv" # string offset=207354.Linfo_string10:355 .asciz "char" # string offset=212356 .section .debug_str_offsets,"",@progbits357 .long .Linfo_string0358 .long .Linfo_string1359 .long .Linfo_string2360 .long .Linfo_string3361 .long .Linfo_string4362 .long .Linfo_string5363 .long .Linfo_string6364 .long .Linfo_string7365 .long .Linfo_string8366 .long .Linfo_string9367 .long .Linfo_string10368 .section .debug_addr,"",@progbits369 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution370.Ldebug_addr_start0:371 .short 5 # DWARF version number372 .byte 8 # Address size373 .byte 0 # Segment selector size374.Laddr_table_base0:375 .quad _Z7doStuffi.__part.1376 .quad _Z7doStuffi.__part.2377 .quad .Lfunc_begin0378 .quad .Lfunc_begin1379.Ldebug_addr_end0:380 .ident "clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)"381 .section ".note.GNU-stack","",@progbits382 .addrsig383 .addrsig_sym _Z7doStuffi384 .section .debug_line,"",@progbits385.Lline_table_start0:386