326 lines · plain
1# clang++ -O0 -g2 -S -ffunction-sections -o2# int Foo;3# int helper() {4# return 0;5# }6#7# int helperhelper() {8# return 0;9# }10# int helperhelper2() {11# return 1;12# }13 14 .text15 .file "helper.cpp"16 .file 0 "/repro2" "helper.cpp" md5 0xef451fc8d099ed067c9f2ff97d8aacf617 .section .text._Z6helperv,"ax",@progbits18 .globl _Z6helperv # -- Begin function _Z6helperv19 .p2align 4, 0x9020 .type _Z6helperv,@function21_Z6helperv: # @_Z6helperv22.Lfunc_begin0:23 .loc 0 2 0 # helper.cpp:2:024 .cfi_startproc25# %bb.0: # %entry26 pushq %rbp27 .cfi_def_cfa_offset 1628 .cfi_offset %rbp, -1629 movq %rsp, %rbp30 .cfi_def_cfa_register %rbp31.Ltmp0:32 .loc 0 3 3 prologue_end # helper.cpp:3:333 xorl %eax, %eax34 .loc 0 3 3 epilogue_begin is_stmt 0 # helper.cpp:3:335 popq %rbp36 .cfi_def_cfa %rsp, 837 retq38.Ltmp1:39.Lfunc_end0:40 .size _Z6helperv, .Lfunc_end0-_Z6helperv41 .cfi_endproc42 # -- End function43 .section .text._Z12helperhelperv,"ax",@progbits44 .globl _Z12helperhelperv # -- Begin function _Z12helperhelperv45 .p2align 4, 0x9046 .type _Z12helperhelperv,@function47_Z12helperhelperv: # @_Z12helperhelperv48.Lfunc_begin1:49 .loc 0 5 0 is_stmt 1 # helper.cpp:5:050 .cfi_startproc51# %bb.0: # %entry52 pushq %rbp53 .cfi_def_cfa_offset 1654 .cfi_offset %rbp, -1655 movq %rsp, %rbp56 .cfi_def_cfa_register %rbp57.Ltmp2:58 .loc 0 6 3 prologue_end # helper.cpp:6:359 xorl %eax, %eax60 .loc 0 6 3 epilogue_begin is_stmt 0 # helper.cpp:6:361 popq %rbp62 .cfi_def_cfa %rsp, 863 retq64.Ltmp3:65.Lfunc_end1:66 .size _Z12helperhelperv, .Lfunc_end1-_Z12helperhelperv67 .cfi_endproc68 # -- End function69 .section .text._Z13helperhelper2v,"ax",@progbits70 .globl _Z13helperhelper2v # -- Begin function _Z13helperhelper2v71 .p2align 4, 0x9072 .type _Z13helperhelper2v,@function73_Z13helperhelper2v: # @_Z13helperhelper2v74.Lfunc_begin2:75 .loc 0 8 0 is_stmt 1 # helper.cpp:8: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.Ltmp4:84 .loc 0 9 3 prologue_end # helper.cpp:9:385 movl $1, %eax86 .loc 0 9 3 epilogue_begin is_stmt 0 # helper.cpp:9:387 popq %rbp88 .cfi_def_cfa %rsp, 889 retq90.Ltmp5:91.Lfunc_end2:92 .size _Z13helperhelper2v, .Lfunc_end2-_Z13helperhelper2v93 .cfi_endproc94 # -- End function95 .type Foo,@object # @Foo96 .bss97 .globl Foo98 .p2align 2, 0x099Foo:100 .long 0 # 0x0101 .size Foo, 4102 103 .section .debug_abbrev,"",@progbits104 .byte 1 # Abbreviation Code105 .byte 17 # DW_TAG_compile_unit106 .byte 1 # DW_CHILDREN_yes107 .byte 37 # DW_AT_producer108 .byte 37 # DW_FORM_strx1109 .byte 19 # DW_AT_language110 .byte 5 # DW_FORM_data2111 .byte 3 # DW_AT_name112 .byte 37 # DW_FORM_strx1113 .byte 114 # DW_AT_str_offsets_base114 .byte 23 # DW_FORM_sec_offset115 .byte 16 # DW_AT_stmt_list116 .byte 23 # DW_FORM_sec_offset117 .byte 27 # DW_AT_comp_dir118 .byte 37 # DW_FORM_strx1119 .byte 17 # DW_AT_low_pc120 .byte 1 # DW_FORM_addr121 .byte 85 # DW_AT_ranges122 .byte 35 # DW_FORM_rnglistx123 .byte 115 # DW_AT_addr_base124 .byte 23 # DW_FORM_sec_offset125 .byte 116 # DW_AT_rnglists_base126 .byte 23 # DW_FORM_sec_offset127 .byte 0 # EOM(1)128 .byte 0 # EOM(2)129 .byte 2 # Abbreviation Code130 .byte 52 # DW_TAG_variable131 .byte 0 # DW_CHILDREN_no132 .byte 3 # DW_AT_name133 .byte 37 # DW_FORM_strx1134 .byte 73 # DW_AT_type135 .byte 19 # DW_FORM_ref4136 .byte 63 # DW_AT_external137 .byte 25 # DW_FORM_flag_present138 .byte 58 # DW_AT_decl_file139 .byte 11 # DW_FORM_data1140 .byte 59 # DW_AT_decl_line141 .byte 11 # DW_FORM_data1142 .byte 2 # DW_AT_location143 .byte 24 # DW_FORM_exprloc144 .byte 0 # EOM(1)145 .byte 0 # EOM(2)146 .byte 3 # Abbreviation Code147 .byte 36 # DW_TAG_base_type148 .byte 0 # DW_CHILDREN_no149 .byte 3 # DW_AT_name150 .byte 37 # DW_FORM_strx1151 .byte 62 # DW_AT_encoding152 .byte 11 # DW_FORM_data1153 .byte 11 # DW_AT_byte_size154 .byte 11 # DW_FORM_data1155 .byte 0 # EOM(1)156 .byte 0 # EOM(2)157 .byte 4 # Abbreviation Code158 .byte 46 # DW_TAG_subprogram159 .byte 0 # DW_CHILDREN_no160 .byte 17 # DW_AT_low_pc161 .byte 27 # DW_FORM_addrx162 .byte 18 # DW_AT_high_pc163 .byte 6 # DW_FORM_data4164 .byte 64 # DW_AT_frame_base165 .byte 24 # DW_FORM_exprloc166 .byte 110 # DW_AT_linkage_name167 .byte 37 # DW_FORM_strx1168 .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 63 # DW_AT_external177 .byte 25 # DW_FORM_flag_present178 .byte 0 # EOM(1)179 .byte 0 # EOM(2)180 .byte 0 # EOM(3)181 .section .debug_info,"",@progbits182.Lcu_begin0:183 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit184.Ldebug_info_start0:185 .short 5 # DWARF version number186 .byte 1 # DWARF Unit Type187 .byte 8 # Address Size (in bytes)188 .long .debug_abbrev # Offset Into Abbrev. Section189 .byte 1 # Abbrev [1] 0xc:0x5f DW_TAG_compile_unit190 .byte 0 # DW_AT_producer191 .short 33 # DW_AT_language192 .byte 1 # DW_AT_name193 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base194 .long .Lline_table_start0 # DW_AT_stmt_list195 .byte 2 # DW_AT_comp_dir196 .quad 0 # DW_AT_low_pc197 .byte 0 # DW_AT_ranges198 .long .Laddr_table_base0 # DW_AT_addr_base199 .long .Lrnglists_table_base0 # DW_AT_rnglists_base200 .byte 2 # Abbrev [2] 0x2b:0xb DW_TAG_variable201 .byte 3 # DW_AT_name202 .long 54 # DW_AT_type203 # DW_AT_external204 .byte 0 # DW_AT_decl_file205 .byte 1 # DW_AT_decl_line206 .byte 2 # DW_AT_location207 .byte 161208 .byte 0209 .byte 3 # Abbrev [3] 0x36:0x4 DW_TAG_base_type210 .byte 4 # DW_AT_name211 .byte 5 # DW_AT_encoding212 .byte 4 # DW_AT_byte_size213 .byte 4 # Abbrev [4] 0x3a:0x10 DW_TAG_subprogram214 .byte 1 # DW_AT_low_pc215 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc216 .byte 1 # DW_AT_frame_base217 .byte 86218 .byte 5 # DW_AT_linkage_name219 .byte 6 # DW_AT_name220 .byte 0 # DW_AT_decl_file221 .byte 2 # DW_AT_decl_line222 .long 54 # DW_AT_type223 # DW_AT_external224 .byte 4 # Abbrev [4] 0x4a:0x10 DW_TAG_subprogram225 .byte 2 # DW_AT_low_pc226 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc227 .byte 1 # DW_AT_frame_base228 .byte 86229 .byte 7 # DW_AT_linkage_name230 .byte 8 # DW_AT_name231 .byte 0 # DW_AT_decl_file232 .byte 5 # DW_AT_decl_line233 .long 54 # DW_AT_type234 # DW_AT_external235 .byte 4 # Abbrev [4] 0x5a:0x10 DW_TAG_subprogram236 .byte 3 # DW_AT_low_pc237 .long .Lfunc_end2-.Lfunc_begin2 # DW_AT_high_pc238 .byte 1 # DW_AT_frame_base239 .byte 86240 .byte 9 # DW_AT_linkage_name241 .byte 10 # DW_AT_name242 .byte 0 # DW_AT_decl_file243 .byte 8 # DW_AT_decl_line244 .long 54 # DW_AT_type245 # DW_AT_external246 .byte 0 # End Of Children Mark247.Ldebug_info_end0:248 .section .debug_rnglists,"",@progbits249 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length250.Ldebug_list_header_start0:251 .short 5 # Version252 .byte 8 # Address size253 .byte 0 # Segment selector size254 .long 1 # Offset entry count255.Lrnglists_table_base0:256 .long .Ldebug_ranges0-.Lrnglists_table_base0257.Ldebug_ranges0:258 .byte 3 # DW_RLE_startx_length259 .byte 1 # start index260 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length261 .byte 3 # DW_RLE_startx_length262 .byte 2 # start index263 .uleb128 .Lfunc_end1-.Lfunc_begin1 # length264 .byte 3 # DW_RLE_startx_length265 .byte 3 # start index266 .uleb128 .Lfunc_end2-.Lfunc_begin2 # length267 .byte 0 # DW_RLE_end_of_list268.Ldebug_list_header_end0:269 .section .debug_str_offsets,"",@progbits270 .long 48 # Length of String Offsets Set271 .short 5272 .short 0273.Lstr_offsets_base0:274 .section .debug_str,"MS",@progbits,1275.Linfo_string0:276 .asciz "clang version 19.0.0git (git@github.com:ayermolo/llvm-project.git 6c884ef47e88e5ff18353819e806fe1b84e3c5b5)" # string offset=0277.Linfo_string1:278 .asciz "helper.cpp" # string offset=108279.Linfo_string2:280 .asciz "/repro2" # string offset=119281.Linfo_string3:282 .asciz "Foo" # string offset=164283.Linfo_string4:284 .asciz "int" # string offset=168285.Linfo_string5:286 .asciz "_Z6helperv" # string offset=172287.Linfo_string6:288 .asciz "helper" # string offset=183289.Linfo_string7:290 .asciz "_Z12helperhelperv" # string offset=190291.Linfo_string8:292 .asciz "helperhelper" # string offset=208293.Linfo_string9:294 .asciz "_Z13helperhelper2v" # string offset=221295.Linfo_string10:296 .asciz "helperhelper2" # string offset=240297 .section .debug_str_offsets,"",@progbits298 .long .Linfo_string0299 .long .Linfo_string1300 .long .Linfo_string2301 .long .Linfo_string3302 .long .Linfo_string4303 .long .Linfo_string5304 .long .Linfo_string6305 .long .Linfo_string7306 .long .Linfo_string8307 .long .Linfo_string9308 .long .Linfo_string10309 .section .debug_addr,"",@progbits310 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution311.Ldebug_addr_start0:312 .short 5 # DWARF version number313 .byte 8 # Address size314 .byte 0 # Segment selector size315.Laddr_table_base0:316 .quad Foo317 .quad .Lfunc_begin0318 .quad .Lfunc_begin1319 .quad .Lfunc_begin2320.Ldebug_addr_end0:321 .ident "clang version 19.0.0git (git@github.com:ayermolo/llvm-project.git 6c884ef47e88e5ff18353819e806fe1b84e3c5b5)"322 .section ".note.GNU-stack","",@progbits323 .addrsig324 .section .debug_line,"",@progbits325.Lline_table_start0:326