391 lines · plain
1# void use(int * x, int * y) {2# *x += 4;3# *y -= 2;4# }5#6# extern int fooVar;7# int main(int argc, char *argv[]) {8# int x = argc;9# int y = fooVar + 3;10# use(&x, &y);11# return x + y;12# }13 14 .text15 .file "main.cpp"16 .globl _Z3usePiS_ # -- Begin function _Z3usePiS_17 .p2align 4, 0x9018 .type _Z3usePiS_,@function19_Z3usePiS_: # @_Z3usePiS_20.Lfunc_begin0:21 .file 0 "." "main.cpp" md5 0x0df8b93231613cae17dbf82c0897c3b322 .loc 0 1 0 # main.cpp:1:023 .cfi_startproc24# %bb.0: # %entry25 #DEBUG_VALUE: use:x <- $rdi26 #DEBUG_VALUE: use:y <- $rsi27 .loc 0 2 6 prologue_end # main.cpp:2:628 addl $4, (%rdi)29 .loc 0 3 6 # main.cpp:3:630 addl $-2, (%rsi)31 .loc 0 4 1 # main.cpp:4:132 retq33.Ltmp0:34.Lfunc_end0:35 .size _Z3usePiS_, .Lfunc_end0-_Z3usePiS_36 .cfi_endproc37 # -- End function38 .globl main # -- Begin function main39 .p2align 4, 0x9040 .type main,@function41main: # @main42.Lfunc_begin1:43 .loc 0 7 0 # main.cpp:7:044 .cfi_startproc45# %bb.0: # %entry46 #DEBUG_VALUE: main:argc <- $edi47 #DEBUG_VALUE: main:argv <- $rsi48 #DEBUG_VALUE: main:x <- $edi49 # kill: def $edi killed $edi def $rdi50 .loc 0 9 13 prologue_end # main.cpp:9:1351 movq fooVar@GOTPCREL(%rip), %rax52 movl (%rax), %eax53.Ltmp1:54 #DEBUG_VALUE: main:y <- [DW_OP_plus_uconst 3, DW_OP_stack_value] $eax55 #DEBUG_VALUE: main:y <- [DW_OP_plus_uconst 1, DW_OP_stack_value] $eax56 #DEBUG_VALUE: main:x <- [DW_OP_plus_uconst 4, DW_OP_stack_value] $edi57 .loc 0 11 14 # main.cpp:11:1458 addl %edi, %eax59.Ltmp2:60 addl $5, %eax61 .loc 0 11 5 is_stmt 0 # main.cpp:11:562 retq63.Ltmp3:64.Lfunc_end1:65 .size main, .Lfunc_end1-main66 .cfi_endproc67 # -- End function68 .section .debug_loclists,"",@progbits69 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length70.Ldebug_list_header_start0:71 .short 5 # Version72 .byte 8 # Address size73 .byte 0 # Segment selector size74 .long 2 # Offset entry count75.Lloclists_table_base0:76 .long .Ldebug_loc0-.Lloclists_table_base077 .long .Ldebug_loc1-.Lloclists_table_base078.Ldebug_loc0:79 .byte 4 # DW_LLE_offset_pair80 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset81 .uleb128 .Ltmp1-.Lfunc_begin0 # ending offset82 .byte 1 # Loc expr size83 .byte 85 # super-register DW_OP_reg584 .byte 4 # DW_LLE_offset_pair85 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset86 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset87 .byte 10 # Loc expr size88 .byte 117 # DW_OP_breg589 .byte 4 # 490 .byte 16 # DW_OP_constu91 .byte 255 # 429496729592 .byte 255 #93 .byte 255 #94 .byte 255 #95 .byte 15 #96 .byte 26 # DW_OP_and97 .byte 159 # DW_OP_stack_value98 .byte 0 # DW_LLE_end_of_list99.Ldebug_loc1:100 .byte 4 # DW_LLE_offset_pair101 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset102 .uleb128 .Ltmp2-.Lfunc_begin0 # ending offset103 .byte 10 # Loc expr size104 .byte 112 # DW_OP_breg0105 .byte 1 # 1106 .byte 16 # DW_OP_constu107 .byte 255 # 4294967295108 .byte 255 #109 .byte 255 #110 .byte 255 #111 .byte 15 #112 .byte 26 # DW_OP_and113 .byte 159 # DW_OP_stack_value114 .byte 0 # DW_LLE_end_of_list115.Ldebug_list_header_end0:116 .section .debug_abbrev,"",@progbits117 .byte 1 # Abbreviation Code118 .byte 17 # DW_TAG_compile_unit119 .byte 1 # DW_CHILDREN_yes120 .byte 37 # DW_AT_producer121 .byte 37 # DW_FORM_strx1122 .byte 19 # DW_AT_language123 .byte 5 # DW_FORM_data2124 .byte 3 # DW_AT_name125 .byte 37 # DW_FORM_strx1126 .byte 114 # DW_AT_str_offsets_base127 .byte 23 # DW_FORM_sec_offset128 .byte 16 # DW_AT_stmt_list129 .byte 23 # DW_FORM_sec_offset130 .byte 27 # DW_AT_comp_dir131 .byte 37 # DW_FORM_strx1132 .byte 17 # DW_AT_low_pc133 .byte 27 # DW_FORM_addrx134 .byte 18 # DW_AT_high_pc135 .byte 6 # DW_FORM_data4136 .byte 115 # DW_AT_addr_base137 .byte 23 # DW_FORM_sec_offset138 .byte 0 # EOM(1)139 .byte 0 # EOM(2)140 .byte 2 # Abbreviation Code141 .byte 46 # DW_TAG_subprogram142 .byte 1 # DW_CHILDREN_yes143 .byte 17 # DW_AT_low_pc144 .byte 27 # DW_FORM_addrx145 .byte 18 # DW_AT_high_pc146 .byte 6 # DW_FORM_data4147 .byte 64 # DW_AT_frame_base148 .byte 24 # DW_FORM_exprloc149 .byte 122 # DW_AT_call_all_calls150 .byte 25 # DW_FORM_flag_present151 .byte 110 # DW_AT_linkage_name152 .byte 37 # DW_FORM_strx1153 .byte 3 # DW_AT_name154 .byte 37 # DW_FORM_strx1155 .byte 58 # DW_AT_decl_file156 .byte 11 # DW_FORM_data1157 .byte 59 # DW_AT_decl_line158 .byte 11 # DW_FORM_data1159 .byte 63 # DW_AT_external160 .byte 25 # DW_FORM_flag_present161 .byte 0 # EOM(1)162 .byte 0 # EOM(2)163 .byte 3 # Abbreviation Code164 .byte 5 # DW_TAG_formal_parameter165 .byte 0 # DW_CHILDREN_no166 .byte 2 # DW_AT_location167 .byte 24 # DW_FORM_exprloc168 .byte 3 # DW_AT_name169 .byte 37 # DW_FORM_strx1170 .byte 58 # DW_AT_decl_file171 .byte 11 # DW_FORM_data1172 .byte 59 # DW_AT_decl_line173 .byte 11 # DW_FORM_data1174 .byte 73 # DW_AT_type175 .byte 19 # DW_FORM_ref4176 .byte 0 # EOM(1)177 .byte 0 # EOM(2)178 .byte 4 # Abbreviation Code179 .byte 46 # DW_TAG_subprogram180 .byte 1 # DW_CHILDREN_yes181 .byte 17 # DW_AT_low_pc182 .byte 27 # DW_FORM_addrx183 .byte 18 # DW_AT_high_pc184 .byte 6 # DW_FORM_data4185 .byte 64 # DW_AT_frame_base186 .byte 24 # DW_FORM_exprloc187 .byte 122 # DW_AT_call_all_calls188 .byte 25 # DW_FORM_flag_present189 .byte 3 # DW_AT_name190 .byte 37 # DW_FORM_strx1191 .byte 58 # DW_AT_decl_file192 .byte 11 # DW_FORM_data1193 .byte 59 # DW_AT_decl_line194 .byte 11 # DW_FORM_data1195 .byte 73 # DW_AT_type196 .byte 19 # DW_FORM_ref4197 .byte 63 # DW_AT_external198 .byte 25 # DW_FORM_flag_present199 .byte 0 # EOM(1)200 .byte 0 # EOM(2)201 .byte 5 # Abbreviation Code202 .byte 52 # DW_TAG_variable203 .byte 0 # DW_CHILDREN_no204 .byte 2 # DW_AT_location205 .byte 23 # DW_FORM_sec_offset206 .byte 3 # DW_AT_name207 .byte 37 # DW_FORM_strx1208 .byte 58 # DW_AT_decl_file209 .byte 11 # DW_FORM_data1210 .byte 59 # DW_AT_decl_line211 .byte 11 # DW_FORM_data1212 .byte 73 # DW_AT_type213 .byte 19 # DW_FORM_ref4214 .byte 0 # EOM(1)215 .byte 0 # EOM(2)216 .byte 6 # Abbreviation Code217 .byte 36 # DW_TAG_base_type218 .byte 0 # DW_CHILDREN_no219 .byte 3 # DW_AT_name220 .byte 37 # DW_FORM_strx1221 .byte 62 # DW_AT_encoding222 .byte 11 # DW_FORM_data1223 .byte 11 # DW_AT_byte_size224 .byte 11 # DW_FORM_data1225 .byte 0 # EOM(1)226 .byte 0 # EOM(2)227 .byte 7 # Abbreviation Code228 .byte 15 # DW_TAG_pointer_type229 .byte 0 # DW_CHILDREN_no230 .byte 73 # DW_AT_type231 .byte 19 # DW_FORM_ref4232 .byte 0 # EOM(1)233 .byte 0 # EOM(2)234 .byte 0 # EOM(3)235 .section .debug_info,"",@progbits236.Lcu_begin0:237 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit238.Ldebug_info_start0:239 .short 5 # DWARF version number240 .byte 1 # DWARF Unit Type241 .byte 8 # Address Size (in bytes)242 .long .debug_abbrev # Offset Into Abbrev. Section243 .byte 1 # Abbrev [1] 0xc:0x8a DW_TAG_compile_unit244 .byte 0 # DW_AT_producer245 .short 33 # DW_AT_language246 .byte 1 # DW_AT_name247 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base248 .long .Lline_table_start0 # DW_AT_stmt_list249 .byte 2 # DW_AT_comp_dir250 .byte 0 # DW_AT_low_pc251 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc252 .long .Laddr_table_base0 # DW_AT_addr_base253 .byte 2 # Abbrev [2] 0x27:0x21 DW_TAG_subprogram254 .byte 0 # DW_AT_low_pc255 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc256 .byte 1 # DW_AT_frame_base257 .byte 87258 # DW_AT_call_all_calls259 .byte 3 # DW_AT_linkage_name260 .byte 4 # DW_AT_name261 .byte 0 # DW_AT_decl_file262 .byte 1 # DW_AT_decl_line263 # DW_AT_external264 .byte 3 # Abbrev [3] 0x33:0xa DW_TAG_formal_parameter265 .byte 1 # DW_AT_location266 .byte 85267 .byte 7 # DW_AT_name268 .byte 0 # DW_AT_decl_file269 .byte 1 # DW_AT_decl_line270 .long 132 # DW_AT_type271 .byte 3 # Abbrev [3] 0x3d:0xa DW_TAG_formal_parameter272 .byte 1 # DW_AT_location273 .byte 84274 .byte 8 # DW_AT_name275 .byte 0 # DW_AT_decl_file276 .byte 1 # DW_AT_decl_line277 .long 132 # DW_AT_type278 .byte 0 # End Of Children Mark279 .byte 4 # Abbrev [4] 0x48:0x36 DW_TAG_subprogram280 .byte 1 # DW_AT_low_pc281 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc282 .byte 1 # DW_AT_frame_base283 .byte 87284 # DW_AT_call_all_calls285 .byte 5 # DW_AT_name286 .byte 0 # DW_AT_decl_file287 .byte 7 # DW_AT_decl_line288 .long 128 # DW_AT_type289 # DW_AT_external290 .byte 3 # Abbrev [3] 0x57:0xa DW_TAG_formal_parameter291 .byte 1 # DW_AT_location292 .byte 85293 .byte 9 # DW_AT_name294 .byte 0 # DW_AT_decl_file295 .byte 7 # DW_AT_decl_line296 .long 128 # DW_AT_type297 .byte 3 # Abbrev [3] 0x61:0xa DW_TAG_formal_parameter298 .byte 1 # DW_AT_location299 .byte 84300 .byte 10 # DW_AT_name301 .byte 0 # DW_AT_decl_file302 .byte 7 # DW_AT_decl_line303 .long 137 # DW_AT_type304 .byte 5 # Abbrev [5] 0x6b:0x9 DW_TAG_variable305 .long .Ldebug_loc0 # DW_AT_location306 .byte 7 # DW_AT_name307 .byte 0 # DW_AT_decl_file308 .byte 8 # DW_AT_decl_line309 .long 128 # DW_AT_type310 .byte 5 # Abbrev [5] 0x74:0x9 DW_TAG_variable311 .long .Ldebug_loc1 # DW_AT_location312 .byte 8 # DW_AT_name313 .byte 0 # DW_AT_decl_file314 .byte 9 # DW_AT_decl_line315 .long 128 # DW_AT_type316 .byte 0 # End Of Children Mark317 .byte 6 # Abbrev [6] 0x7e:0x4 DW_TAG_base_type318 .byte 6 # DW_AT_name319 .byte 5 # DW_AT_encoding320 .byte 4 # DW_AT_byte_size321 .byte 7 # Abbrev [7] 0x82:0x5 DW_TAG_pointer_type322 .long 128 # DW_AT_type323 .byte 7 # Abbrev [7] 0x87:0x5 DW_TAG_pointer_type324 .long 142 # DW_AT_type325 .byte 7 # Abbrev [7] 0x8c:0x5 DW_TAG_pointer_type326 .long 147 # DW_AT_type327 .byte 6 # Abbrev [6] 0x91:0x4 DW_TAG_base_type328 .byte 11 # DW_AT_name329 .byte 6 # DW_AT_encoding330 .byte 1 # DW_AT_byte_size331 .byte 0 # End Of Children Mark332.Ldebug_info_end0:333 .section .debug_str_offsets,"",@progbits334 .long 52 # Length of String Offsets Set335 .short 5336 .short 0337.Lstr_offsets_base0:338 .section .debug_str,"MS",@progbits,1339.Linfo_string0:340 .asciz "clang version 15.0.0" # string offset=0341.Linfo_string1:342 .asciz "main.cpp" # string offset=134343.Linfo_string2:344 .asciz "." # string offset=143345.Linfo_string3:346 .asciz "_Z3usePiS_" # string offset=181347.Linfo_string4:348 .asciz "use" # string offset=192349.Linfo_string5:350 .asciz "main" # string offset=196351.Linfo_string6:352 .asciz "int" # string offset=201353.Linfo_string7:354 .asciz "x" # string offset=205355.Linfo_string8:356 .asciz "y" # string offset=207357.Linfo_string9:358 .asciz "argc" # string offset=209359.Linfo_string10:360 .asciz "argv" # string offset=214361.Linfo_string11:362 .asciz "char" # string offset=219363 .section .debug_str_offsets,"",@progbits364 .long .Linfo_string0365 .long .Linfo_string1366 .long .Linfo_string2367 .long .Linfo_string3368 .long .Linfo_string4369 .long .Linfo_string5370 .long .Linfo_string6371 .long .Linfo_string7372 .long .Linfo_string8373 .long .Linfo_string9374 .long .Linfo_string10375 .long .Linfo_string11376 .section .debug_addr,"",@progbits377 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution378.Ldebug_addr_start0:379 .short 5 # DWARF version number380 .byte 8 # Address size381 .byte 0 # Segment selector size382.Laddr_table_base0:383 .quad .Lfunc_begin0384 .quad .Lfunc_begin1385.Ldebug_addr_end0:386 .ident "clang version 15.0.0"387 .section ".note.GNU-stack","",@progbits388 .addrsig389 .section .debug_line,"",@progbits390.Lline_table_start0:391