1*0acfe848SMaksim Panchenko# REQUIRES: system-linux 2*0acfe848SMaksim Panchenko 3*0acfe848SMaksim Panchenko# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %s -o %tmain.o 4*0acfe848SMaksim Panchenko# RUN: %clang %cflags -no-pie %s -o %t.exe -Wl,-q 5*0acfe848SMaksim Panchenko# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections 6*0acfe848SMaksim Panchenko# RUN: llvm-dwarfdump --show-children --name=main --debug-info %t.bolt \ 7*0acfe848SMaksim Panchenko# RUN: | FileCheck %s 8*0acfe848SMaksim Panchenko 9*0acfe848SMaksim Panchenko# CHECK: DW_TAG_inlined_subroutine 10*0acfe848SMaksim Panchenko# CHECK: DW_AT_low_pc 11*0acfe848SMaksim Panchenko# CHECK-SAME: 0x0000000000000000 12*0acfe848SMaksim Panchenko 13*0acfe848SMaksim Panchenko# CHECK: DW_TAG_GNU_call_site 14*0acfe848SMaksim Panchenko# CHECK: DW_AT_low_pc 15*0acfe848SMaksim Panchenko# CHECK-SAME: 0x0000000000000000 16*0acfe848SMaksim Panchenko 17*0acfe848SMaksim Panchenko## Test that llvm-bolt correctly updates DIEs corresponding to deleted code. 18*0acfe848SMaksim Panchenko 19*0acfe848SMaksim Panchenko# Test case built from the following source using: 20*0acfe848SMaksim Panchenko# 21*0acfe848SMaksim Panchenko# clang -O2 -g ... 22*0acfe848SMaksim Panchenko# 23*0acfe848SMaksim Panchenko# Assembly modified with "je" -> "jmp" to introduce unreachable block. 24*0acfe848SMaksim Panchenko# 25*0acfe848SMaksim Panchenko# extern void puts(const char *); 26*0acfe848SMaksim Panchenko# 27*0acfe848SMaksim Panchenko# static void foo() { 28*0acfe848SMaksim Panchenko# puts("hi"); 29*0acfe848SMaksim Panchenko# } 30*0acfe848SMaksim Panchenko# 31*0acfe848SMaksim Panchenko# int main(int argc, char **argv) { 32*0acfe848SMaksim Panchenko# if (argc) 33*0acfe848SMaksim Panchenko# foo(); 34*0acfe848SMaksim Panchenko# return 0; 35*0acfe848SMaksim Panchenko# } 36*0acfe848SMaksim Panchenko 37*0acfe848SMaksim Panchenko .text 38*0acfe848SMaksim Panchenko .file "unreachable.c" 39*0acfe848SMaksim Panchenko .file 1 "." "unreachable.c" 40*0acfe848SMaksim Panchenko .globl main # -- Begin function main 41*0acfe848SMaksim Panchenko .p2align 4, 0x90 42*0acfe848SMaksim Panchenko .type main,@function 43*0acfe848SMaksim Panchenkomain: # @main 44*0acfe848SMaksim Panchenko.Lfunc_begin0: 45*0acfe848SMaksim Panchenko .loc 1 7 0 # unreachable.c:7:0 46*0acfe848SMaksim Panchenko .cfi_startproc 47*0acfe848SMaksim Panchenko# %bb.0: 48*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argc <- $edi 49*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argv <- $rsi 50*0acfe848SMaksim Panchenko .loc 1 8 7 prologue_end # unreachable.c:8:7 51*0acfe848SMaksim Panchenko testl %edi, %edi 52*0acfe848SMaksim Panchenko.Ltmp0: 53*0acfe848SMaksim Panchenko .loc 1 8 7 is_stmt 0 # unreachable.c:8:7 54*0acfe848SMaksim Panchenko jmp .LBB0_2 55*0acfe848SMaksim Panchenko.Ltmp1: 56*0acfe848SMaksim Panchenko# %bb.1: 57*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argc <- $edi 58*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argv <- $rsi 59*0acfe848SMaksim Panchenko pushq %rax 60*0acfe848SMaksim Panchenko .cfi_def_cfa_offset 16 61*0acfe848SMaksim Panchenko.Ltmp2: 62*0acfe848SMaksim Panchenko .loc 1 4 3 is_stmt 1 # unreachable.c:4:3 63*0acfe848SMaksim Panchenko movl $.L.str, %edi 64*0acfe848SMaksim Panchenko.Ltmp3: 65*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 66*0acfe848SMaksim Panchenko callq puts 67*0acfe848SMaksim Panchenko.Ltmp4: 68*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi 69*0acfe848SMaksim Panchenko .loc 1 0 3 is_stmt 0 # unreachable.c:0:3 70*0acfe848SMaksim Panchenko addq $8, %rsp 71*0acfe848SMaksim Panchenko.Ltmp5: 72*0acfe848SMaksim Panchenko .cfi_def_cfa_offset 8 73*0acfe848SMaksim Panchenko.LBB0_2: 74*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 75*0acfe848SMaksim Panchenko #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi 76*0acfe848SMaksim Panchenko .loc 1 10 3 is_stmt 1 # unreachable.c:10:3 77*0acfe848SMaksim Panchenko xorl %eax, %eax 78*0acfe848SMaksim Panchenko retq 79*0acfe848SMaksim Panchenko.Ltmp6: 80*0acfe848SMaksim Panchenko.Lfunc_end0: 81*0acfe848SMaksim Panchenko .size main, .Lfunc_end0-main 82*0acfe848SMaksim Panchenko .cfi_endproc 83*0acfe848SMaksim Panchenko # -- End function 84*0acfe848SMaksim Panchenko .type .L.str,@object # @.str 85*0acfe848SMaksim Panchenko .section .rodata.str1.1,"aMS",@progbits,1 86*0acfe848SMaksim Panchenko.L.str: 87*0acfe848SMaksim Panchenko .asciz "hi" 88*0acfe848SMaksim Panchenko .size .L.str, 3 89*0acfe848SMaksim Panchenko 90*0acfe848SMaksim Panchenko .section .debug_loc,"",@progbits 91*0acfe848SMaksim Panchenko.Ldebug_loc0: 92*0acfe848SMaksim Panchenko .quad .Lfunc_begin0-.Lfunc_begin0 93*0acfe848SMaksim Panchenko .quad .Ltmp3-.Lfunc_begin0 94*0acfe848SMaksim Panchenko .short 1 # Loc expr size 95*0acfe848SMaksim Panchenko .byte 85 # super-register DW_OP_reg5 96*0acfe848SMaksim Panchenko .quad .Ltmp3-.Lfunc_begin0 97*0acfe848SMaksim Panchenko .quad .Lfunc_end0-.Lfunc_begin0 98*0acfe848SMaksim Panchenko .short 4 # Loc expr size 99*0acfe848SMaksim Panchenko .byte 243 # DW_OP_GNU_entry_value 100*0acfe848SMaksim Panchenko .byte 1 # 1 101*0acfe848SMaksim Panchenko .byte 85 # super-register DW_OP_reg5 102*0acfe848SMaksim Panchenko .byte 159 # DW_OP_stack_value 103*0acfe848SMaksim Panchenko .quad 0 104*0acfe848SMaksim Panchenko .quad 0 105*0acfe848SMaksim Panchenko.Ldebug_loc1: 106*0acfe848SMaksim Panchenko .quad .Lfunc_begin0-.Lfunc_begin0 107*0acfe848SMaksim Panchenko .quad .Ltmp4-.Lfunc_begin0 108*0acfe848SMaksim Panchenko .short 1 # Loc expr size 109*0acfe848SMaksim Panchenko .byte 84 # DW_OP_reg4 110*0acfe848SMaksim Panchenko .quad .Ltmp4-.Lfunc_begin0 111*0acfe848SMaksim Panchenko .quad .Lfunc_end0-.Lfunc_begin0 112*0acfe848SMaksim Panchenko .short 4 # Loc expr size 113*0acfe848SMaksim Panchenko .byte 243 # DW_OP_GNU_entry_value 114*0acfe848SMaksim Panchenko .byte 1 # 1 115*0acfe848SMaksim Panchenko .byte 84 # DW_OP_reg4 116*0acfe848SMaksim Panchenko .byte 159 # DW_OP_stack_value 117*0acfe848SMaksim Panchenko .quad 0 118*0acfe848SMaksim Panchenko .quad 0 119*0acfe848SMaksim Panchenko .section .debug_abbrev,"",@progbits 120*0acfe848SMaksim Panchenko .byte 1 # Abbreviation Code 121*0acfe848SMaksim Panchenko .byte 17 # DW_TAG_compile_unit 122*0acfe848SMaksim Panchenko .byte 1 # DW_CHILDREN_yes 123*0acfe848SMaksim Panchenko .byte 37 # DW_AT_producer 124*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 125*0acfe848SMaksim Panchenko .byte 19 # DW_AT_language 126*0acfe848SMaksim Panchenko .byte 5 # DW_FORM_data2 127*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 128*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 129*0acfe848SMaksim Panchenko .byte 16 # DW_AT_stmt_list 130*0acfe848SMaksim Panchenko .byte 23 # DW_FORM_sec_offset 131*0acfe848SMaksim Panchenko .byte 27 # DW_AT_comp_dir 132*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 133*0acfe848SMaksim Panchenko .byte 17 # DW_AT_low_pc 134*0acfe848SMaksim Panchenko .byte 1 # DW_FORM_addr 135*0acfe848SMaksim Panchenko .byte 18 # DW_AT_high_pc 136*0acfe848SMaksim Panchenko .byte 6 # DW_FORM_data4 137*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 138*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 139*0acfe848SMaksim Panchenko .byte 2 # Abbreviation Code 140*0acfe848SMaksim Panchenko .byte 52 # DW_TAG_variable 141*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 142*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 143*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 144*0acfe848SMaksim Panchenko .byte 58 # DW_AT_decl_file 145*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 146*0acfe848SMaksim Panchenko .byte 59 # DW_AT_decl_line 147*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 148*0acfe848SMaksim Panchenko .byte 2 # DW_AT_location 149*0acfe848SMaksim Panchenko .byte 24 # DW_FORM_exprloc 150*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 151*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 152*0acfe848SMaksim Panchenko .byte 3 # Abbreviation Code 153*0acfe848SMaksim Panchenko .byte 1 # DW_TAG_array_type 154*0acfe848SMaksim Panchenko .byte 1 # DW_CHILDREN_yes 155*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 156*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 157*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 158*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 159*0acfe848SMaksim Panchenko .byte 4 # Abbreviation Code 160*0acfe848SMaksim Panchenko .byte 33 # DW_TAG_subrange_type 161*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 162*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 163*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 164*0acfe848SMaksim Panchenko .byte 55 # DW_AT_count 165*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 166*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 167*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 168*0acfe848SMaksim Panchenko .byte 5 # Abbreviation Code 169*0acfe848SMaksim Panchenko .byte 36 # DW_TAG_base_type 170*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 171*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 172*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 173*0acfe848SMaksim Panchenko .byte 62 # DW_AT_encoding 174*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 175*0acfe848SMaksim Panchenko .byte 11 # DW_AT_byte_size 176*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 177*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 178*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 179*0acfe848SMaksim Panchenko .byte 6 # Abbreviation Code 180*0acfe848SMaksim Panchenko .byte 36 # DW_TAG_base_type 181*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 182*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 183*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 184*0acfe848SMaksim Panchenko .byte 11 # DW_AT_byte_size 185*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 186*0acfe848SMaksim Panchenko .byte 62 # DW_AT_encoding 187*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 188*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 189*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 190*0acfe848SMaksim Panchenko .byte 7 # Abbreviation Code 191*0acfe848SMaksim Panchenko .byte 46 # DW_TAG_subprogram 192*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 193*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 194*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 195*0acfe848SMaksim Panchenko .byte 58 # DW_AT_decl_file 196*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 197*0acfe848SMaksim Panchenko .byte 59 # DW_AT_decl_line 198*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 199*0acfe848SMaksim Panchenko .byte 32 # DW_AT_inline 200*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 201*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 202*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 203*0acfe848SMaksim Panchenko .byte 8 # Abbreviation Code 204*0acfe848SMaksim Panchenko .byte 46 # DW_TAG_subprogram 205*0acfe848SMaksim Panchenko .byte 1 # DW_CHILDREN_yes 206*0acfe848SMaksim Panchenko .byte 17 # DW_AT_low_pc 207*0acfe848SMaksim Panchenko .byte 1 # DW_FORM_addr 208*0acfe848SMaksim Panchenko .byte 18 # DW_AT_high_pc 209*0acfe848SMaksim Panchenko .byte 6 # DW_FORM_data4 210*0acfe848SMaksim Panchenko .byte 64 # DW_AT_frame_base 211*0acfe848SMaksim Panchenko .byte 24 # DW_FORM_exprloc 212*0acfe848SMaksim Panchenko .ascii "\227B" # DW_AT_GNU_all_call_sites 213*0acfe848SMaksim Panchenko .byte 25 # DW_FORM_flag_present 214*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 215*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 216*0acfe848SMaksim Panchenko .byte 58 # DW_AT_decl_file 217*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 218*0acfe848SMaksim Panchenko .byte 59 # DW_AT_decl_line 219*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 220*0acfe848SMaksim Panchenko .byte 39 # DW_AT_prototyped 221*0acfe848SMaksim Panchenko .byte 25 # DW_FORM_flag_present 222*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 223*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 224*0acfe848SMaksim Panchenko .byte 63 # DW_AT_external 225*0acfe848SMaksim Panchenko .byte 25 # DW_FORM_flag_present 226*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 227*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 228*0acfe848SMaksim Panchenko .byte 9 # Abbreviation Code 229*0acfe848SMaksim Panchenko .byte 5 # DW_TAG_formal_parameter 230*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 231*0acfe848SMaksim Panchenko .byte 2 # DW_AT_location 232*0acfe848SMaksim Panchenko .byte 23 # DW_FORM_sec_offset 233*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 234*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 235*0acfe848SMaksim Panchenko .byte 58 # DW_AT_decl_file 236*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 237*0acfe848SMaksim Panchenko .byte 59 # DW_AT_decl_line 238*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 239*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 240*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 241*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 242*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 243*0acfe848SMaksim Panchenko .byte 10 # Abbreviation Code 244*0acfe848SMaksim Panchenko .byte 29 # DW_TAG_inlined_subroutine 245*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 246*0acfe848SMaksim Panchenko .byte 49 # DW_AT_abstract_origin 247*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 248*0acfe848SMaksim Panchenko .byte 17 # DW_AT_low_pc 249*0acfe848SMaksim Panchenko .byte 1 # DW_FORM_addr 250*0acfe848SMaksim Panchenko .byte 18 # DW_AT_high_pc 251*0acfe848SMaksim Panchenko .byte 6 # DW_FORM_data4 252*0acfe848SMaksim Panchenko .byte 88 # DW_AT_call_file 253*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 254*0acfe848SMaksim Panchenko .byte 89 # DW_AT_call_line 255*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 256*0acfe848SMaksim Panchenko .byte 87 # DW_AT_call_column 257*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 258*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 259*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 260*0acfe848SMaksim Panchenko .byte 11 # Abbreviation Code 261*0acfe848SMaksim Panchenko .ascii "\211\202\001" # DW_TAG_GNU_call_site 262*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 263*0acfe848SMaksim Panchenko .byte 49 # DW_AT_abstract_origin 264*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 265*0acfe848SMaksim Panchenko .byte 17 # DW_AT_low_pc 266*0acfe848SMaksim Panchenko .byte 1 # DW_FORM_addr 267*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 268*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 269*0acfe848SMaksim Panchenko .byte 12 # Abbreviation Code 270*0acfe848SMaksim Panchenko .byte 46 # DW_TAG_subprogram 271*0acfe848SMaksim Panchenko .byte 1 # DW_CHILDREN_yes 272*0acfe848SMaksim Panchenko .byte 3 # DW_AT_name 273*0acfe848SMaksim Panchenko .byte 14 # DW_FORM_strp 274*0acfe848SMaksim Panchenko .byte 58 # DW_AT_decl_file 275*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 276*0acfe848SMaksim Panchenko .byte 59 # DW_AT_decl_line 277*0acfe848SMaksim Panchenko .byte 11 # DW_FORM_data1 278*0acfe848SMaksim Panchenko .byte 39 # DW_AT_prototyped 279*0acfe848SMaksim Panchenko .byte 25 # DW_FORM_flag_present 280*0acfe848SMaksim Panchenko .byte 60 # DW_AT_declaration 281*0acfe848SMaksim Panchenko .byte 25 # DW_FORM_flag_present 282*0acfe848SMaksim Panchenko .byte 63 # DW_AT_external 283*0acfe848SMaksim Panchenko .byte 25 # DW_FORM_flag_present 284*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 285*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 286*0acfe848SMaksim Panchenko .byte 13 # Abbreviation Code 287*0acfe848SMaksim Panchenko .byte 5 # DW_TAG_formal_parameter 288*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 289*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 290*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 291*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 292*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 293*0acfe848SMaksim Panchenko .byte 14 # Abbreviation Code 294*0acfe848SMaksim Panchenko .byte 15 # DW_TAG_pointer_type 295*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 296*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 297*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 298*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 299*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 300*0acfe848SMaksim Panchenko .byte 15 # Abbreviation Code 301*0acfe848SMaksim Panchenko .byte 38 # DW_TAG_const_type 302*0acfe848SMaksim Panchenko .byte 0 # DW_CHILDREN_no 303*0acfe848SMaksim Panchenko .byte 73 # DW_AT_type 304*0acfe848SMaksim Panchenko .byte 19 # DW_FORM_ref4 305*0acfe848SMaksim Panchenko .byte 0 # EOM(1) 306*0acfe848SMaksim Panchenko .byte 0 # EOM(2) 307*0acfe848SMaksim Panchenko .byte 0 # EOM(3) 308*0acfe848SMaksim Panchenko .section .debug_info,"",@progbits 309*0acfe848SMaksim Panchenko.Lcu_begin0: 310*0acfe848SMaksim Panchenko .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 311*0acfe848SMaksim Panchenko.Ldebug_info_start0: 312*0acfe848SMaksim Panchenko .short 4 # DWARF version number 313*0acfe848SMaksim Panchenko .long .debug_abbrev # Offset Into Abbrev. Section 314*0acfe848SMaksim Panchenko .byte 8 # Address Size (in bytes) 315*0acfe848SMaksim Panchenko .byte 1 # Abbrev [1] 0xb:0xd4 DW_TAG_compile_unit 316*0acfe848SMaksim Panchenko .long .Linfo_string0 # DW_AT_producer 317*0acfe848SMaksim Panchenko .short 12 # DW_AT_language 318*0acfe848SMaksim Panchenko .long .Linfo_string1 # DW_AT_name 319*0acfe848SMaksim Panchenko .long .Lline_table_start0 # DW_AT_stmt_list 320*0acfe848SMaksim Panchenko .long .Linfo_string2 # DW_AT_comp_dir 321*0acfe848SMaksim Panchenko .quad .Lfunc_begin0 # DW_AT_low_pc 322*0acfe848SMaksim Panchenko .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 323*0acfe848SMaksim Panchenko .byte 2 # Abbrev [2] 0x2a:0x11 DW_TAG_variable 324*0acfe848SMaksim Panchenko .long 59 # DW_AT_type 325*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_file 326*0acfe848SMaksim Panchenko .byte 4 # DW_AT_decl_line 327*0acfe848SMaksim Panchenko .byte 9 # DW_AT_location 328*0acfe848SMaksim Panchenko .byte 3 329*0acfe848SMaksim Panchenko .quad .L.str 330*0acfe848SMaksim Panchenko .byte 3 # Abbrev [3] 0x3b:0xc DW_TAG_array_type 331*0acfe848SMaksim Panchenko .long 71 # DW_AT_type 332*0acfe848SMaksim Panchenko .byte 4 # Abbrev [4] 0x40:0x6 DW_TAG_subrange_type 333*0acfe848SMaksim Panchenko .long 78 # DW_AT_type 334*0acfe848SMaksim Panchenko .byte 3 # DW_AT_count 335*0acfe848SMaksim Panchenko .byte 0 # End Of Children Mark 336*0acfe848SMaksim Panchenko .byte 5 # Abbrev [5] 0x47:0x7 DW_TAG_base_type 337*0acfe848SMaksim Panchenko .long .Linfo_string3 # DW_AT_name 338*0acfe848SMaksim Panchenko .byte 6 # DW_AT_encoding 339*0acfe848SMaksim Panchenko .byte 1 # DW_AT_byte_size 340*0acfe848SMaksim Panchenko .byte 6 # Abbrev [6] 0x4e:0x7 DW_TAG_base_type 341*0acfe848SMaksim Panchenko .long .Linfo_string4 # DW_AT_name 342*0acfe848SMaksim Panchenko .byte 8 # DW_AT_byte_size 343*0acfe848SMaksim Panchenko .byte 7 # DW_AT_encoding 344*0acfe848SMaksim Panchenko .byte 7 # Abbrev [7] 0x55:0x8 DW_TAG_subprogram 345*0acfe848SMaksim Panchenko .long .Linfo_string5 # DW_AT_name 346*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_file 347*0acfe848SMaksim Panchenko .byte 3 # DW_AT_decl_line 348*0acfe848SMaksim Panchenko .byte 1 # DW_AT_inline 349*0acfe848SMaksim Panchenko .byte 8 # Abbrev [8] 0x5d:0x59 DW_TAG_subprogram 350*0acfe848SMaksim Panchenko .quad .Lfunc_begin0 # DW_AT_low_pc 351*0acfe848SMaksim Panchenko .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 352*0acfe848SMaksim Panchenko .byte 1 # DW_AT_frame_base 353*0acfe848SMaksim Panchenko .byte 87 354*0acfe848SMaksim Panchenko # DW_AT_GNU_all_call_sites 355*0acfe848SMaksim Panchenko .long .Linfo_string7 # DW_AT_name 356*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_file 357*0acfe848SMaksim Panchenko .byte 7 # DW_AT_decl_line 358*0acfe848SMaksim Panchenko # DW_AT_prototyped 359*0acfe848SMaksim Panchenko .long 205 # DW_AT_type 360*0acfe848SMaksim Panchenko # DW_AT_external 361*0acfe848SMaksim Panchenko .byte 9 # Abbrev [9] 0x76:0xf DW_TAG_formal_parameter 362*0acfe848SMaksim Panchenko .long .Ldebug_loc0 # DW_AT_location 363*0acfe848SMaksim Panchenko .long .Linfo_string9 # DW_AT_name 364*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_file 365*0acfe848SMaksim Panchenko .byte 7 # DW_AT_decl_line 366*0acfe848SMaksim Panchenko .long 205 # DW_AT_type 367*0acfe848SMaksim Panchenko .byte 9 # Abbrev [9] 0x85:0xf DW_TAG_formal_parameter 368*0acfe848SMaksim Panchenko .long .Ldebug_loc1 # DW_AT_location 369*0acfe848SMaksim Panchenko .long .Linfo_string10 # DW_AT_name 370*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_file 371*0acfe848SMaksim Panchenko .byte 7 # DW_AT_decl_line 372*0acfe848SMaksim Panchenko .long 212 # DW_AT_type 373*0acfe848SMaksim Panchenko .byte 10 # Abbrev [10] 0x94:0x14 DW_TAG_inlined_subroutine 374*0acfe848SMaksim Panchenko .long 85 # DW_AT_abstract_origin 375*0acfe848SMaksim Panchenko .quad .Ltmp2 # DW_AT_low_pc 376*0acfe848SMaksim Panchenko .long .Ltmp5-.Ltmp2 # DW_AT_high_pc 377*0acfe848SMaksim Panchenko .byte 1 # DW_AT_call_file 378*0acfe848SMaksim Panchenko .byte 9 # DW_AT_call_line 379*0acfe848SMaksim Panchenko .byte 5 # DW_AT_call_column 380*0acfe848SMaksim Panchenko .byte 11 # Abbrev [11] 0xa8:0xd DW_TAG_GNU_call_site 381*0acfe848SMaksim Panchenko .long 182 # DW_AT_abstract_origin 382*0acfe848SMaksim Panchenko .quad .Ltmp4 # DW_AT_low_pc 383*0acfe848SMaksim Panchenko .byte 0 # End Of Children Mark 384*0acfe848SMaksim Panchenko .byte 12 # Abbrev [12] 0xb6:0xd DW_TAG_subprogram 385*0acfe848SMaksim Panchenko .long .Linfo_string6 # DW_AT_name 386*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_file 387*0acfe848SMaksim Panchenko .byte 1 # DW_AT_decl_line 388*0acfe848SMaksim Panchenko # DW_AT_prototyped 389*0acfe848SMaksim Panchenko # DW_AT_declaration 390*0acfe848SMaksim Panchenko # DW_AT_external 391*0acfe848SMaksim Panchenko .byte 13 # Abbrev [13] 0xbd:0x5 DW_TAG_formal_parameter 392*0acfe848SMaksim Panchenko .long 195 # DW_AT_type 393*0acfe848SMaksim Panchenko .byte 0 # End Of Children Mark 394*0acfe848SMaksim Panchenko .byte 14 # Abbrev [14] 0xc3:0x5 DW_TAG_pointer_type 395*0acfe848SMaksim Panchenko .long 200 # DW_AT_type 396*0acfe848SMaksim Panchenko .byte 15 # Abbrev [15] 0xc8:0x5 DW_TAG_const_type 397*0acfe848SMaksim Panchenko .long 71 # DW_AT_type 398*0acfe848SMaksim Panchenko .byte 5 # Abbrev [5] 0xcd:0x7 DW_TAG_base_type 399*0acfe848SMaksim Panchenko .long .Linfo_string8 # DW_AT_name 400*0acfe848SMaksim Panchenko .byte 5 # DW_AT_encoding 401*0acfe848SMaksim Panchenko .byte 4 # DW_AT_byte_size 402*0acfe848SMaksim Panchenko .byte 14 # Abbrev [14] 0xd4:0x5 DW_TAG_pointer_type 403*0acfe848SMaksim Panchenko .long 217 # DW_AT_type 404*0acfe848SMaksim Panchenko .byte 14 # Abbrev [14] 0xd9:0x5 DW_TAG_pointer_type 405*0acfe848SMaksim Panchenko .long 71 # DW_AT_type 406*0acfe848SMaksim Panchenko .byte 0 # End Of Children Mark 407*0acfe848SMaksim Panchenko.Ldebug_info_end0: 408*0acfe848SMaksim Panchenko .section .debug_str,"MS",@progbits,1 409*0acfe848SMaksim Panchenko.Linfo_string0: 410*0acfe848SMaksim Panchenko .asciz "clang version 15.0.7 " # string offset=0 411*0acfe848SMaksim Panchenko.Linfo_string1: 412*0acfe848SMaksim Panchenko .asciz "unreachable.c" # string offset=69 413*0acfe848SMaksim Panchenko.Linfo_string2: 414*0acfe848SMaksim Panchenko .asciz "." # string offset=83 415*0acfe848SMaksim Panchenko.Linfo_string3: 416*0acfe848SMaksim Panchenko .asciz "char" # string offset=85 417*0acfe848SMaksim Panchenko.Linfo_string4: 418*0acfe848SMaksim Panchenko .asciz "__ARRAY_SIZE_TYPE__" # string offset=90 419*0acfe848SMaksim Panchenko.Linfo_string5: 420*0acfe848SMaksim Panchenko .asciz "foo" # string offset=110 421*0acfe848SMaksim Panchenko.Linfo_string6: 422*0acfe848SMaksim Panchenko .asciz "puts" # string offset=114 423*0acfe848SMaksim Panchenko.Linfo_string7: 424*0acfe848SMaksim Panchenko .asciz "main" # string offset=119 425*0acfe848SMaksim Panchenko.Linfo_string8: 426*0acfe848SMaksim Panchenko .asciz "int" # string offset=124 427*0acfe848SMaksim Panchenko.Linfo_string9: 428*0acfe848SMaksim Panchenko .asciz "argc" # string offset=128 429*0acfe848SMaksim Panchenko.Linfo_string10: 430*0acfe848SMaksim Panchenko .asciz "argv" # string offset=133 431*0acfe848SMaksim Panchenko .section .debug_line,"",@progbits 432*0acfe848SMaksim Panchenko.Lline_table_start0: 433