1*bb6a4850SAlexander Yermolovich# clang++ -g2 -fdebug-types-section -gdwarf-4 -ffunction-sections 2*bb6a4850SAlexander Yermolovich# int foo(int i) { 3*bb6a4850SAlexander Yermolovich# if (i == 1) 4*bb6a4850SAlexander Yermolovich# return 2; 5*bb6a4850SAlexander Yermolovich# return 1; 6*bb6a4850SAlexander Yermolovich# } 7*bb6a4850SAlexander Yermolovich# int main(int argc, char* argv[]) { 8*bb6a4850SAlexander Yermolovich# int j = argc; 9*bb6a4850SAlexander Yermolovich# if (j ==3) 10*bb6a4850SAlexander Yermolovich# j+= foo(argc); 11*bb6a4850SAlexander Yermolovich# return j; 12*bb6a4850SAlexander Yermolovich# } 13*bb6a4850SAlexander Yermolovich .text 14*bb6a4850SAlexander Yermolovich .file "helper.cpp" 15*bb6a4850SAlexander Yermolovich .file 1 "/test" "helper.cpp" 16*bb6a4850SAlexander Yermolovich .section .debug_types,"G",@progbits,7448148824980338162,comdat 17*bb6a4850SAlexander Yermolovich.Ltu_begin0: 18*bb6a4850SAlexander Yermolovich .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 19*bb6a4850SAlexander Yermolovich.Ldebug_info_start0: 20*bb6a4850SAlexander Yermolovich .short 4 # DWARF version number 21*bb6a4850SAlexander Yermolovich .long .debug_abbrev # Offset Into Abbrev. Section 22*bb6a4850SAlexander Yermolovich .byte 8 # Address Size (in bytes) 23*bb6a4850SAlexander Yermolovich .quad 7448148824980338162 # Type Signature 24*bb6a4850SAlexander Yermolovich .long 30 # Type DIE Offset 25*bb6a4850SAlexander Yermolovich .byte 1 # Abbrev [1] 0x17:0x25 DW_TAG_type_unit 26*bb6a4850SAlexander Yermolovich .short 33 # DW_AT_language 27*bb6a4850SAlexander Yermolovich .long .Lline_table_start0 # DW_AT_stmt_list 28*bb6a4850SAlexander Yermolovich .byte 2 # Abbrev [2] 0x1e:0x16 DW_TAG_structure_type 29*bb6a4850SAlexander Yermolovich .byte 5 # DW_AT_calling_convention 30*bb6a4850SAlexander Yermolovich .long .Linfo_string6 # DW_AT_name 31*bb6a4850SAlexander Yermolovich .byte 4 # DW_AT_byte_size 32*bb6a4850SAlexander Yermolovich .byte 1 # DW_AT_decl_file 33*bb6a4850SAlexander Yermolovich .byte 1 # DW_AT_decl_line 34*bb6a4850SAlexander Yermolovich .byte 3 # Abbrev [3] 0x27:0xc DW_TAG_member 35*bb6a4850SAlexander Yermolovich .long .Linfo_string4 # DW_AT_name 36*bb6a4850SAlexander Yermolovich .long 52 # DW_AT_type 37*bb6a4850SAlexander Yermolovich .byte 1 # DW_AT_decl_file 38*bb6a4850SAlexander Yermolovich .byte 2 # DW_AT_decl_line 39*bb6a4850SAlexander Yermolovich .byte 0 # DW_AT_data_member_location 40*bb6a4850SAlexander Yermolovich .byte 0 # End Of Children Mark 41*bb6a4850SAlexander Yermolovich .byte 4 # Abbrev [4] 0x34:0x7 DW_TAG_base_type 42*bb6a4850SAlexander Yermolovich .long .Linfo_string5 # DW_AT_name 43*bb6a4850SAlexander Yermolovich .byte 5 # DW_AT_encoding 44*bb6a4850SAlexander Yermolovich .byte 4 # DW_AT_byte_size 45*bb6a4850SAlexander Yermolovich .byte 0 # End Of Children Mark 46*bb6a4850SAlexander Yermolovich.Ldebug_info_end0: 47*bb6a4850SAlexander Yermolovich .type f2,@object # @f2 48*bb6a4850SAlexander Yermolovich .bss 49*bb6a4850SAlexander Yermolovich .globl f2 50*bb6a4850SAlexander Yermolovich .p2align 2, 0x0 51*bb6a4850SAlexander Yermolovichf2: 52*bb6a4850SAlexander Yermolovich .zero 4 53*bb6a4850SAlexander Yermolovich .size f2, 4 54*bb6a4850SAlexander Yermolovich 55*bb6a4850SAlexander Yermolovich .section .debug_abbrev,"",@progbits 56*bb6a4850SAlexander Yermolovich .byte 1 # Abbreviation Code 57*bb6a4850SAlexander Yermolovich .byte 65 # DW_TAG_type_unit 58*bb6a4850SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 59*bb6a4850SAlexander Yermolovich .byte 19 # DW_AT_language 60*bb6a4850SAlexander Yermolovich .byte 5 # DW_FORM_data2 61*bb6a4850SAlexander Yermolovich .byte 16 # DW_AT_stmt_list 62*bb6a4850SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 63*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 64*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 65*bb6a4850SAlexander Yermolovich .byte 2 # Abbreviation Code 66*bb6a4850SAlexander Yermolovich .byte 19 # DW_TAG_structure_type 67*bb6a4850SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 68*bb6a4850SAlexander Yermolovich .byte 54 # DW_AT_calling_convention 69*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 70*bb6a4850SAlexander Yermolovich .byte 3 # DW_AT_name 71*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 72*bb6a4850SAlexander Yermolovich .byte 11 # DW_AT_byte_size 73*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 74*bb6a4850SAlexander Yermolovich .byte 58 # DW_AT_decl_file 75*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 76*bb6a4850SAlexander Yermolovich .byte 59 # DW_AT_decl_line 77*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 78*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 79*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 80*bb6a4850SAlexander Yermolovich .byte 3 # Abbreviation Code 81*bb6a4850SAlexander Yermolovich .byte 13 # DW_TAG_member 82*bb6a4850SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 83*bb6a4850SAlexander Yermolovich .byte 3 # DW_AT_name 84*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 85*bb6a4850SAlexander Yermolovich .byte 73 # DW_AT_type 86*bb6a4850SAlexander Yermolovich .byte 19 # DW_FORM_ref4 87*bb6a4850SAlexander Yermolovich .byte 58 # DW_AT_decl_file 88*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 89*bb6a4850SAlexander Yermolovich .byte 59 # DW_AT_decl_line 90*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 91*bb6a4850SAlexander Yermolovich .byte 56 # DW_AT_data_member_location 92*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 93*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 94*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 95*bb6a4850SAlexander Yermolovich .byte 4 # Abbreviation Code 96*bb6a4850SAlexander Yermolovich .byte 36 # DW_TAG_base_type 97*bb6a4850SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 98*bb6a4850SAlexander Yermolovich .byte 3 # DW_AT_name 99*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 100*bb6a4850SAlexander Yermolovich .byte 62 # DW_AT_encoding 101*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 102*bb6a4850SAlexander Yermolovich .byte 11 # DW_AT_byte_size 103*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 104*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 105*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 106*bb6a4850SAlexander Yermolovich .byte 5 # Abbreviation Code 107*bb6a4850SAlexander Yermolovich .byte 17 # DW_TAG_compile_unit 108*bb6a4850SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 109*bb6a4850SAlexander Yermolovich .byte 37 # DW_AT_producer 110*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 111*bb6a4850SAlexander Yermolovich .byte 19 # DW_AT_language 112*bb6a4850SAlexander Yermolovich .byte 5 # DW_FORM_data2 113*bb6a4850SAlexander Yermolovich .byte 3 # DW_AT_name 114*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 115*bb6a4850SAlexander Yermolovich .byte 16 # DW_AT_stmt_list 116*bb6a4850SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 117*bb6a4850SAlexander Yermolovich .byte 27 # DW_AT_comp_dir 118*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 119*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 120*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 121*bb6a4850SAlexander Yermolovich .byte 6 # Abbreviation Code 122*bb6a4850SAlexander Yermolovich .byte 52 # DW_TAG_variable 123*bb6a4850SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 124*bb6a4850SAlexander Yermolovich .byte 3 # DW_AT_name 125*bb6a4850SAlexander Yermolovich .byte 14 # DW_FORM_strp 126*bb6a4850SAlexander Yermolovich .byte 73 # DW_AT_type 127*bb6a4850SAlexander Yermolovich .byte 19 # DW_FORM_ref4 128*bb6a4850SAlexander Yermolovich .byte 63 # DW_AT_external 129*bb6a4850SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 130*bb6a4850SAlexander Yermolovich .byte 58 # DW_AT_decl_file 131*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 132*bb6a4850SAlexander Yermolovich .byte 59 # DW_AT_decl_line 133*bb6a4850SAlexander Yermolovich .byte 11 # DW_FORM_data1 134*bb6a4850SAlexander Yermolovich .byte 2 # DW_AT_location 135*bb6a4850SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 136*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 137*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 138*bb6a4850SAlexander Yermolovich .byte 7 # Abbreviation Code 139*bb6a4850SAlexander Yermolovich .byte 19 # DW_TAG_structure_type 140*bb6a4850SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 141*bb6a4850SAlexander Yermolovich .byte 60 # DW_AT_declaration 142*bb6a4850SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 143*bb6a4850SAlexander Yermolovich .byte 105 # DW_AT_signature 144*bb6a4850SAlexander Yermolovich .byte 32 # DW_FORM_ref_sig8 145*bb6a4850SAlexander Yermolovich .byte 0 # EOM(1) 146*bb6a4850SAlexander Yermolovich .byte 0 # EOM(2) 147*bb6a4850SAlexander Yermolovich .byte 0 # EOM(3) 148*bb6a4850SAlexander Yermolovich .section .debug_info,"",@progbits 149*bb6a4850SAlexander Yermolovich.Lcu_begin0: 150*bb6a4850SAlexander Yermolovich .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit 151*bb6a4850SAlexander Yermolovich.Ldebug_info_start1: 152*bb6a4850SAlexander Yermolovich .short 4 # DWARF version number 153*bb6a4850SAlexander Yermolovich .long .debug_abbrev # Offset Into Abbrev. Section 154*bb6a4850SAlexander Yermolovich .byte 8 # Address Size (in bytes) 155*bb6a4850SAlexander Yermolovich .byte 5 # Abbrev [5] 0xb:0x32 DW_TAG_compile_unit 156*bb6a4850SAlexander Yermolovich .long .Linfo_string0 # DW_AT_producer 157*bb6a4850SAlexander Yermolovich .short 33 # DW_AT_language 158*bb6a4850SAlexander Yermolovich .long .Linfo_string1 # DW_AT_name 159*bb6a4850SAlexander Yermolovich .long .Lline_table_start0 # DW_AT_stmt_list 160*bb6a4850SAlexander Yermolovich .long .Linfo_string2 # DW_AT_comp_dir 161*bb6a4850SAlexander Yermolovich .byte 6 # Abbrev [6] 0x1e:0x15 DW_TAG_variable 162*bb6a4850SAlexander Yermolovich .long .Linfo_string3 # DW_AT_name 163*bb6a4850SAlexander Yermolovich .long 51 # DW_AT_type 164*bb6a4850SAlexander Yermolovich # DW_AT_external 165*bb6a4850SAlexander Yermolovich .byte 1 # DW_AT_decl_file 166*bb6a4850SAlexander Yermolovich .byte 4 # DW_AT_decl_line 167*bb6a4850SAlexander Yermolovich .byte 9 # DW_AT_location 168*bb6a4850SAlexander Yermolovich .byte 3 169*bb6a4850SAlexander Yermolovich .quad f2 170*bb6a4850SAlexander Yermolovich .byte 7 # Abbrev [7] 0x33:0x9 DW_TAG_structure_type 171*bb6a4850SAlexander Yermolovich # DW_AT_declaration 172*bb6a4850SAlexander Yermolovich .quad 7448148824980338162 # DW_AT_signature 173*bb6a4850SAlexander Yermolovich .byte 0 # End Of Children Mark 174*bb6a4850SAlexander Yermolovich.Ldebug_info_end1: 175*bb6a4850SAlexander Yermolovich .section .debug_str,"MS",@progbits,1 176*bb6a4850SAlexander Yermolovich.Linfo_string0: 177*bb6a4850SAlexander Yermolovich .asciz "clang version 18.0.0git" # string offset=0 178*bb6a4850SAlexander Yermolovich.Linfo_string1: 179*bb6a4850SAlexander Yermolovich .asciz "helper.cpp" # string offset=24 180*bb6a4850SAlexander Yermolovich.Linfo_string2: 181*bb6a4850SAlexander Yermolovich .asciz "/test" # string offset=35 182*bb6a4850SAlexander Yermolovich.Linfo_string3: 183*bb6a4850SAlexander Yermolovich .asciz "f2" # string offset=73 184*bb6a4850SAlexander Yermolovich.Linfo_string4: 185*bb6a4850SAlexander Yermolovich .asciz "i" # string offset=76 186*bb6a4850SAlexander Yermolovich.Linfo_string5: 187*bb6a4850SAlexander Yermolovich .asciz "int" # string offset=78 188*bb6a4850SAlexander Yermolovich.Linfo_string6: 189*bb6a4850SAlexander Yermolovich .asciz "Foo" # string offset=82 190*bb6a4850SAlexander Yermolovich .ident "clang version 18.0.0git" 191*bb6a4850SAlexander Yermolovich .section ".note.GNU-stack","",@progbits 192*bb6a4850SAlexander Yermolovich .addrsig 193*bb6a4850SAlexander Yermolovich .section .debug_line,"",@progbits 194*bb6a4850SAlexander Yermolovich.Lline_table_start0: 195