1*4b825c74SAlexander Yermolovich# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %tmain.o 2*4b825c74SAlexander Yermolovich# RUN: %clang %cflags -gdwarf-5 %tmain.o -o %tmain.exe 3*4b825c74SAlexander Yermolovich# RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections 4*4b825c74SAlexander Yermolovich# RUN: llvm-dwarfdump --debug-names %tmain.exe.bolt > %tlog.txt 5*4b825c74SAlexander Yermolovich# RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s 6*4b825c74SAlexander Yermolovich 7*4b825c74SAlexander Yermolovich## Tests that bolt can correctly generate debug_names when there is an DW_TAG_inlined_subroutine 8*4b825c74SAlexander Yermolovich## with DW_AT_abstract_origin that points to DW_TAG_subprogram that only has DW_AT_linkage_name. 9*4b825c74SAlexander Yermolovich 10*4b825c74SAlexander Yermolovich# BOLT: Name Index @ 0x0 { 11*4b825c74SAlexander Yermolovich# BOLT-NEXT: Header { 12*4b825c74SAlexander Yermolovich# BOLT-NEXT: Length: 0xA2 13*4b825c74SAlexander Yermolovich# BOLT-NEXT: Format: DWARF32 14*4b825c74SAlexander Yermolovich# BOLT-NEXT: Version: 5 15*4b825c74SAlexander Yermolovich# BOLT-NEXT: CU count: 1 16*4b825c74SAlexander Yermolovich# BOLT-NEXT: Local TU count: 0 17*4b825c74SAlexander Yermolovich# BOLT-NEXT: Foreign TU count: 0 18*4b825c74SAlexander Yermolovich# BOLT-NEXT: Bucket count: 4 19*4b825c74SAlexander Yermolovich# BOLT-NEXT: Name count: 4 20*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbreviations table size: 0x19 21*4b825c74SAlexander Yermolovich# BOLT-NEXT: Augmentation: 'BOLT' 22*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 23*4b825c74SAlexander Yermolovich# BOLT-NEXT: Compilation Unit offsets [ 24*4b825c74SAlexander Yermolovich# BOLT-NEXT: CU[0]: 0x00000000 25*4b825c74SAlexander Yermolovich# BOLT-NEXT: ] 26*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbreviations [ 27*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] { 28*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_base_type 29*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 30*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 31*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 32*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] { 33*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_subprogram 34*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 35*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 36*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 37*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] { 38*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine 39*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 40*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_ref4 41*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 42*4b825c74SAlexander Yermolovich# BOLT-NEXT: ] 43*4b825c74SAlexander Yermolovich# BOLT-NEXT: Bucket 0 [ 44*4b825c74SAlexander Yermolovich# BOLT-NEXT: Name 1 { 45*4b825c74SAlexander Yermolovich# BOLT-NEXT: Hash: 0xB888030 46*4b825c74SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "int" 47*4b825c74SAlexander Yermolovich# BOLT-NEXT: Entry @ {{.+}} { 48*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbrev: 0x1 49*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_base_type 50*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x0000004a 51*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: <parent not indexed> 52*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 53*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 54*4b825c74SAlexander Yermolovich# BOLT-NEXT: ] 55*4b825c74SAlexander Yermolovich# BOLT-NEXT: Bucket 1 [ 56*4b825c74SAlexander Yermolovich# BOLT-NEXT: EMPTY 57*4b825c74SAlexander Yermolovich# BOLT-NEXT: ] 58*4b825c74SAlexander Yermolovich# BOLT-NEXT: Bucket 2 [ 59*4b825c74SAlexander Yermolovich# BOLT-NEXT: Name 2 { 60*4b825c74SAlexander Yermolovich# BOLT-NEXT: Hash: 0x7C9A7F6A 61*4b825c74SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "main" 62*4b825c74SAlexander Yermolovich# BOLT-NEXT: Entry @ [[REF1:0x[0-9a-f]*]] { 63*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV2]] 64*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_subprogram 65*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x0000004e 66*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: <parent not indexed> 67*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 68*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 69*4b825c74SAlexander Yermolovich# BOLT-NEXT: Name 3 { 70*4b825c74SAlexander Yermolovich# BOLT-NEXT: Hash: 0xB5063CFE 71*4b825c74SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "_Z3fooi" 72*4b825c74SAlexander Yermolovich# BOLT-NEXT: Entry @ {{.+}} { 73*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV2]] 74*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_subprogram 75*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x00000024 76*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: <parent not indexed> 77*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 78*4b825c74SAlexander Yermolovich# BOLT-NEXT: Entry @ 0x96 { 79*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV3]] 80*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine 81*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x0000007e 82*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: Entry @ [[REF1]] 83*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 84*4b825c74SAlexander Yermolovich# BOLT-NEXT: } 85*4b825c74SAlexander Yermolovich# BOLT-NEXT: ] 86*4b825c74SAlexander Yermolovich# BOLT-NEXT: Bucket 3 [ 87*4b825c74SAlexander Yermolovich# BOLT-NEXT: Name 4 { 88*4b825c74SAlexander Yermolovich# BOLT-NEXT: Hash: 0x7C952063 89*4b825c74SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "char" 90*4b825c74SAlexander Yermolovich# BOLT-NEXT: Entry @ {{.+}} { 91*4b825c74SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV1]] 92*4b825c74SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_base_type 93*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x0000009f 94*4b825c74SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: <parent not indexed> 95*4b825c74SAlexander Yermolovich 96*4b825c74SAlexander Yermolovich## int foo(int i) { 97*4b825c74SAlexander Yermolovich## return i ++; 98*4b825c74SAlexander Yermolovich## } 99*4b825c74SAlexander Yermolovich## int main(int argc, char* argv[]) { 100*4b825c74SAlexander Yermolovich## int i = 0; 101*4b825c74SAlexander Yermolovich## [[clang::always_inline]] i = foo(argc); 102*4b825c74SAlexander Yermolovich## return i; 103*4b825c74SAlexander Yermolovich## } 104*4b825c74SAlexander Yermolovich## Test was manually modified so that DW_TAG_subprogram only had DW_AT_linkage_name. 105*4b825c74SAlexander Yermolovich 106*4b825c74SAlexander Yermolovich .text 107*4b825c74SAlexander Yermolovich .file "main.cpp" 108*4b825c74SAlexander Yermolovich .globl _Z3fooi 109*4b825c74SAlexander Yermolovich .p2align 4, 0x90 110*4b825c74SAlexander Yermolovich .type _Z3fooi,@function 111*4b825c74SAlexander Yermolovich_Z3fooi: 112*4b825c74SAlexander Yermolovich.Lfunc_begin0: 113*4b825c74SAlexander Yermolovich .file 0 "/abstractChain" "main.cpp" md5 0x2e29d55fc1320801a8057a4c50643ea1 114*4b825c74SAlexander Yermolovich .loc 0 1 0 115*4b825c74SAlexander Yermolovich .loc 0 2 12 prologue_end 116*4b825c74SAlexander Yermolovich .loc 0 2 3 epilogue_begin is_stmt 0 117*4b825c74SAlexander Yermolovich retq 118*4b825c74SAlexander Yermolovich.Lfunc_end0: 119*4b825c74SAlexander Yermolovich .size _Z3fooi, .Lfunc_end0-_Z3fooi 120*4b825c74SAlexander Yermolovich 121*4b825c74SAlexander Yermolovich .globl main 122*4b825c74SAlexander Yermolovich .p2align 4, 0x90 123*4b825c74SAlexander Yermolovich .type main,@function 124*4b825c74SAlexander Yermolovichmain: 125*4b825c74SAlexander Yermolovich.Lfunc_begin1: 126*4b825c74SAlexander Yermolovich .loc 0 4 0 is_stmt 1 127*4b825c74SAlexander Yermolovich.Ltmp2: 128*4b825c74SAlexander Yermolovich .loc 0 5 7 prologue_end 129*4b825c74SAlexander Yermolovich .loc 0 6 36 130*4b825c74SAlexander Yermolovich movl -12(%rbp), %eax 131*4b825c74SAlexander Yermolovich.Ltmp3: 132*4b825c74SAlexander Yermolovich .loc 0 2 12 133*4b825c74SAlexander Yermolovich.Ltmp4: 134*4b825c74SAlexander Yermolovich .loc 0 6 30 135*4b825c74SAlexander Yermolovich .loc 0 7 10 136*4b825c74SAlexander Yermolovich .loc 0 7 3 epilogue_begin is_stmt 0 137*4b825c74SAlexander Yermolovich retq 138*4b825c74SAlexander Yermolovich.Ltmp5: 139*4b825c74SAlexander Yermolovich.Lfunc_end1: 140*4b825c74SAlexander Yermolovich .size main, .Lfunc_end1-main 141*4b825c74SAlexander Yermolovich # -- End function 142*4b825c74SAlexander Yermolovich .section .debug_abbrev,"",@progbits 143*4b825c74SAlexander Yermolovich .byte 1 # Abbreviation Code 144*4b825c74SAlexander Yermolovich .byte 17 # DW_TAG_compile_unit 145*4b825c74SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 146*4b825c74SAlexander Yermolovich .byte 37 # DW_AT_producer 147*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 148*4b825c74SAlexander Yermolovich .byte 19 # DW_AT_language 149*4b825c74SAlexander Yermolovich .byte 5 # DW_FORM_data2 150*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_name 151*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 152*4b825c74SAlexander Yermolovich .byte 114 # DW_AT_str_offsets_base 153*4b825c74SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 154*4b825c74SAlexander Yermolovich .byte 16 # DW_AT_stmt_list 155*4b825c74SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 156*4b825c74SAlexander Yermolovich .byte 27 # DW_AT_comp_dir 157*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 158*4b825c74SAlexander Yermolovich .byte 17 # DW_AT_low_pc 159*4b825c74SAlexander Yermolovich .byte 27 # DW_FORM_addrx 160*4b825c74SAlexander Yermolovich .byte 18 # DW_AT_high_pc 161*4b825c74SAlexander Yermolovich .byte 6 # DW_FORM_data4 162*4b825c74SAlexander Yermolovich .byte 115 # DW_AT_addr_base 163*4b825c74SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 164*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 165*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 166*4b825c74SAlexander Yermolovich .byte 2 # Abbreviation Code 167*4b825c74SAlexander Yermolovich .byte 46 # DW_TAG_subprogram 168*4b825c74SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 169*4b825c74SAlexander Yermolovich .byte 17 # DW_AT_low_pc 170*4b825c74SAlexander Yermolovich .byte 27 # DW_FORM_addrx 171*4b825c74SAlexander Yermolovich .byte 18 # DW_AT_high_pc 172*4b825c74SAlexander Yermolovich .byte 6 # DW_FORM_data4 173*4b825c74SAlexander Yermolovich .byte 64 # DW_AT_frame_base 174*4b825c74SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 175*4b825c74SAlexander Yermolovich .byte 49 # DW_AT_abstract_origin 176*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 177*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 178*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 179*4b825c74SAlexander Yermolovich .byte 3 # Abbreviation Code 180*4b825c74SAlexander Yermolovich .byte 5 # DW_TAG_formal_parameter 181*4b825c74SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 182*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 183*4b825c74SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 184*4b825c74SAlexander Yermolovich .byte 49 # DW_AT_abstract_origin 185*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 186*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 187*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 188*4b825c74SAlexander Yermolovich .byte 4 # Abbreviation Code 189*4b825c74SAlexander Yermolovich .byte 46 # DW_TAG_subprogram 190*4b825c74SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 191*4b825c74SAlexander Yermolovich .byte 110 # DW_AT_linkage_name 192*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 193*4b825c74SAlexander Yermolovich #.byte 3 # DW_AT_name 194*4b825c74SAlexander Yermolovich #.byte 37 # DW_FORM_strx1 195*4b825c74SAlexander Yermolovich .byte 58 # DW_AT_decl_file 196*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 197*4b825c74SAlexander Yermolovich .byte 59 # DW_AT_decl_line 198*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 199*4b825c74SAlexander Yermolovich .byte 73 # DW_AT_type 200*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 201*4b825c74SAlexander Yermolovich .byte 63 # DW_AT_external 202*4b825c74SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 203*4b825c74SAlexander Yermolovich .byte 32 # DW_AT_inline 204*4b825c74SAlexander Yermolovich .byte 33 # DW_FORM_implicit_const 205*4b825c74SAlexander Yermolovich .byte 1 206*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 207*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 208*4b825c74SAlexander Yermolovich .byte 5 # Abbreviation Code 209*4b825c74SAlexander Yermolovich .byte 5 # DW_TAG_formal_parameter 210*4b825c74SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 211*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_name 212*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 213*4b825c74SAlexander Yermolovich .byte 58 # DW_AT_decl_file 214*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 215*4b825c74SAlexander Yermolovich .byte 59 # DW_AT_decl_line 216*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 217*4b825c74SAlexander Yermolovich .byte 73 # DW_AT_type 218*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 219*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 220*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 221*4b825c74SAlexander Yermolovich .byte 6 # Abbreviation Code 222*4b825c74SAlexander Yermolovich .byte 36 # DW_TAG_base_type 223*4b825c74SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 224*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_name 225*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 226*4b825c74SAlexander Yermolovich .byte 62 # DW_AT_encoding 227*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 228*4b825c74SAlexander Yermolovich .byte 11 # DW_AT_byte_size 229*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 230*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 231*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 232*4b825c74SAlexander Yermolovich .byte 7 # Abbreviation Code 233*4b825c74SAlexander Yermolovich .byte 46 # DW_TAG_subprogram 234*4b825c74SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 235*4b825c74SAlexander Yermolovich .byte 17 # DW_AT_low_pc 236*4b825c74SAlexander Yermolovich .byte 27 # DW_FORM_addrx 237*4b825c74SAlexander Yermolovich .byte 18 # DW_AT_high_pc 238*4b825c74SAlexander Yermolovich .byte 6 # DW_FORM_data4 239*4b825c74SAlexander Yermolovich .byte 64 # DW_AT_frame_base 240*4b825c74SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 241*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_name 242*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 243*4b825c74SAlexander Yermolovich .byte 58 # DW_AT_decl_file 244*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 245*4b825c74SAlexander Yermolovich .byte 59 # DW_AT_decl_line 246*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 247*4b825c74SAlexander Yermolovich .byte 73 # DW_AT_type 248*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 249*4b825c74SAlexander Yermolovich .byte 63 # DW_AT_external 250*4b825c74SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 251*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 252*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 253*4b825c74SAlexander Yermolovich .byte 8 # Abbreviation Code 254*4b825c74SAlexander Yermolovich .byte 5 # DW_TAG_formal_parameter 255*4b825c74SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 256*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 257*4b825c74SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 258*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_name 259*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 260*4b825c74SAlexander Yermolovich .byte 58 # DW_AT_decl_file 261*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 262*4b825c74SAlexander Yermolovich .byte 59 # DW_AT_decl_line 263*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 264*4b825c74SAlexander Yermolovich .byte 73 # DW_AT_type 265*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 266*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 267*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 268*4b825c74SAlexander Yermolovich .byte 9 # Abbreviation Code 269*4b825c74SAlexander Yermolovich .byte 52 # DW_TAG_variable 270*4b825c74SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 271*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 272*4b825c74SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 273*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_name 274*4b825c74SAlexander Yermolovich .byte 37 # DW_FORM_strx1 275*4b825c74SAlexander Yermolovich .byte 58 # DW_AT_decl_file 276*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 277*4b825c74SAlexander Yermolovich .byte 59 # DW_AT_decl_line 278*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 279*4b825c74SAlexander Yermolovich .byte 73 # DW_AT_type 280*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 281*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 282*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 283*4b825c74SAlexander Yermolovich .byte 10 # Abbreviation Code 284*4b825c74SAlexander Yermolovich .byte 29 # DW_TAG_inlined_subroutine 285*4b825c74SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 286*4b825c74SAlexander Yermolovich .byte 49 # DW_AT_abstract_origin 287*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 288*4b825c74SAlexander Yermolovich .byte 17 # DW_AT_low_pc 289*4b825c74SAlexander Yermolovich .byte 27 # DW_FORM_addrx 290*4b825c74SAlexander Yermolovich .byte 18 # DW_AT_high_pc 291*4b825c74SAlexander Yermolovich .byte 6 # DW_FORM_data4 292*4b825c74SAlexander Yermolovich .byte 88 # DW_AT_call_file 293*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 294*4b825c74SAlexander Yermolovich .byte 89 # DW_AT_call_line 295*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 296*4b825c74SAlexander Yermolovich .byte 87 # DW_AT_call_column 297*4b825c74SAlexander Yermolovich .byte 11 # DW_FORM_data1 298*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 299*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 300*4b825c74SAlexander Yermolovich .byte 11 # Abbreviation Code 301*4b825c74SAlexander Yermolovich .byte 15 # DW_TAG_pointer_type 302*4b825c74SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 303*4b825c74SAlexander Yermolovich .byte 73 # DW_AT_type 304*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 305*4b825c74SAlexander Yermolovich .byte 0 # EOM(1) 306*4b825c74SAlexander Yermolovich .byte 0 # EOM(2) 307*4b825c74SAlexander Yermolovich .byte 0 # EOM(3) 308*4b825c74SAlexander Yermolovich .section .debug_info,"",@progbits 309*4b825c74SAlexander Yermolovich.Lcu_begin0: 310*4b825c74SAlexander Yermolovich .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 311*4b825c74SAlexander Yermolovich.Ldebug_info_start0: 312*4b825c74SAlexander Yermolovich .short 5 # DWARF version number 313*4b825c74SAlexander Yermolovich .byte 1 # DWARF Unit Type 314*4b825c74SAlexander Yermolovich .byte 8 # Address Size (in bytes) 315*4b825c74SAlexander Yermolovich .long .debug_abbrev # Offset Into Abbrev. Section 316*4b825c74SAlexander Yermolovich .byte 1 # Abbrev [1] 0xc:0x98 DW_TAG_compile_unit 317*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_producer 318*4b825c74SAlexander Yermolovich .short 33 # DW_AT_language 319*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_name 320*4b825c74SAlexander Yermolovich .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 321*4b825c74SAlexander Yermolovich .long .Lline_table_start0 # DW_AT_stmt_list 322*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_comp_dir 323*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_low_pc 324*4b825c74SAlexander Yermolovich .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc 325*4b825c74SAlexander Yermolovich .long .Laddr_table_base0 # DW_AT_addr_base 326*4b825c74SAlexander Yermolovich .byte 2 # Abbrev [2] 0x23:0x15 DW_TAG_subprogram 327*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_low_pc 328*4b825c74SAlexander Yermolovich .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 329*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_frame_base 330*4b825c74SAlexander Yermolovich .byte 86 331*4b825c74SAlexander Yermolovich .long 56 # DW_AT_abstract_origin 332*4b825c74SAlexander Yermolovich .byte 3 # Abbrev [3] 0x2f:0x8 DW_TAG_formal_parameter 333*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 334*4b825c74SAlexander Yermolovich .byte 145 335*4b825c74SAlexander Yermolovich .byte 124 336*4b825c74SAlexander Yermolovich .long 64 # DW_AT_abstract_origin Manually Modified 337*4b825c74SAlexander Yermolovich .byte 0 # End Of Children Mark 338*4b825c74SAlexander Yermolovich .byte 4 # Abbrev [4] 0x38:0x12 DW_TAG_subprogram 339*4b825c74SAlexander Yermolovich .byte 3 # DW_AT_linkage_name 340*4b825c74SAlexander Yermolovich #.byte 4 # DW_AT_name 341*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_decl_file 342*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_decl_line 343*4b825c74SAlexander Yermolovich .long 74 # DW_AT_type 344*4b825c74SAlexander Yermolovich # DW_AT_external 345*4b825c74SAlexander Yermolovich # DW_AT_inline 346*4b825c74SAlexander Yermolovich .byte 5 # Abbrev [5] 0x41:0x8 DW_TAG_formal_parameter 347*4b825c74SAlexander Yermolovich .byte 6 # DW_AT_name 348*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_decl_file 349*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_decl_line 350*4b825c74SAlexander Yermolovich .long 74 # DW_AT_type 351*4b825c74SAlexander Yermolovich .byte 0 # End Of Children Mark 352*4b825c74SAlexander Yermolovich .byte 6 # Abbrev [6] 0x4a:0x4 DW_TAG_base_type 353*4b825c74SAlexander Yermolovich .byte 5 # DW_AT_name 354*4b825c74SAlexander Yermolovich .byte 5 # DW_AT_encoding 355*4b825c74SAlexander Yermolovich .byte 4 # DW_AT_byte_size 356*4b825c74SAlexander Yermolovich .byte 7 # Abbrev [7] 0x4e:0x47 DW_TAG_subprogram 357*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_low_pc 358*4b825c74SAlexander Yermolovich .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc 359*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_frame_base 360*4b825c74SAlexander Yermolovich .byte 86 361*4b825c74SAlexander Yermolovich .byte 7 # DW_AT_name 362*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_decl_file 363*4b825c74SAlexander Yermolovich .byte 4 # DW_AT_decl_line 364*4b825c74SAlexander Yermolovich .long 73 # DW_AT_type Manually Modified 365*4b825c74SAlexander Yermolovich # DW_AT_external 366*4b825c74SAlexander Yermolovich .byte 8 # Abbrev [8] 0x5d:0xb DW_TAG_formal_parameter 367*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 368*4b825c74SAlexander Yermolovich .byte 145 369*4b825c74SAlexander Yermolovich .byte 116 370*4b825c74SAlexander Yermolovich .byte 8 # DW_AT_name 371*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_decl_file 372*4b825c74SAlexander Yermolovich .byte 4 # DW_AT_decl_line 373*4b825c74SAlexander Yermolovich .long 73 # DW_AT_type Manually Modified 374*4b825c74SAlexander Yermolovich .byte 8 # Abbrev [8] 0x68:0xb DW_TAG_formal_parameter 375*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 376*4b825c74SAlexander Yermolovich .byte 145 377*4b825c74SAlexander Yermolovich .byte 104 378*4b825c74SAlexander Yermolovich .byte 9 # DW_AT_name 379*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_decl_file 380*4b825c74SAlexander Yermolovich .byte 4 # DW_AT_decl_line 381*4b825c74SAlexander Yermolovich .long 148 # DW_AT_type Manually Modified 382*4b825c74SAlexander Yermolovich .byte 9 # Abbrev [9] 0x73:0xb DW_TAG_variable 383*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 384*4b825c74SAlexander Yermolovich .byte 145 385*4b825c74SAlexander Yermolovich .byte 100 386*4b825c74SAlexander Yermolovich .byte 6 # DW_AT_name 387*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_decl_file 388*4b825c74SAlexander Yermolovich .byte 5 # DW_AT_decl_line 389*4b825c74SAlexander Yermolovich .long 73 # DW_AT_type Manually Modified 390*4b825c74SAlexander Yermolovich .byte 10 # Abbrev [10] 0x7e:0x16 DW_TAG_inlined_subroutine 391*4b825c74SAlexander Yermolovich .long 56 # DW_AT_abstract_origin 392*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_low_pc 393*4b825c74SAlexander Yermolovich .long .Ltmp4-.Ltmp3 # DW_AT_high_pc 394*4b825c74SAlexander Yermolovich .byte 0 # DW_AT_call_file 395*4b825c74SAlexander Yermolovich .byte 6 # DW_AT_call_line 396*4b825c74SAlexander Yermolovich .byte 32 # DW_AT_call_column 397*4b825c74SAlexander Yermolovich .byte 3 # Abbrev [3] 0x8b:0x8 DW_TAG_formal_parameter 398*4b825c74SAlexander Yermolovich .byte 2 # DW_AT_location 399*4b825c74SAlexander Yermolovich .byte 145 400*4b825c74SAlexander Yermolovich .byte 124 401*4b825c74SAlexander Yermolovich .long 64 # DW_AT_abstract_origin Manually Modified 402*4b825c74SAlexander Yermolovich .byte 0 # End Of Children Mark 403*4b825c74SAlexander Yermolovich .byte 0 # End Of Children Mark 404*4b825c74SAlexander Yermolovich .byte 11 # Abbrev [11] 0x95:0x5 DW_TAG_pointer_type 405*4b825c74SAlexander Yermolovich .long 153 # DW_AT_type Manually Modified 406*4b825c74SAlexander Yermolovich .byte 11 # Abbrev [11] 0x9a:0x5 DW_TAG_pointer_type 407*4b825c74SAlexander Yermolovich .long 158 # DW_AT_type Manually Modified 408*4b825c74SAlexander Yermolovich .byte 6 # Abbrev [6] 0x9f:0x4 DW_TAG_base_type 409*4b825c74SAlexander Yermolovich .byte 10 # DW_AT_name 410*4b825c74SAlexander Yermolovich .byte 6 # DW_AT_encoding 411*4b825c74SAlexander Yermolovich .byte 1 # DW_AT_byte_size 412*4b825c74SAlexander Yermolovich .byte 0 # End Of Children Mark 413*4b825c74SAlexander Yermolovich.Ldebug_info_end0: 414*4b825c74SAlexander Yermolovich .section .debug_str_offsets,"",@progbits 415*4b825c74SAlexander Yermolovich .long 48 # Length of String Offsets Set 416*4b825c74SAlexander Yermolovich .short 5 417*4b825c74SAlexander Yermolovich .short 0 418*4b825c74SAlexander Yermolovich.Lstr_offsets_base0: 419*4b825c74SAlexander Yermolovich .section .debug_str,"MS",@progbits,1 420*4b825c74SAlexander Yermolovich.Linfo_string0: 421*4b825c74SAlexander Yermolovich .asciz "clang version 20.0.0git" # string offset=0 422*4b825c74SAlexander Yermolovich.Linfo_string1: 423*4b825c74SAlexander Yermolovich .asciz "main.cpp" # string offset=24 424*4b825c74SAlexander Yermolovich.Linfo_string2: 425*4b825c74SAlexander Yermolovich .asciz "/abstractChain" # string offset=33 426*4b825c74SAlexander Yermolovich.Linfo_string3: 427*4b825c74SAlexander Yermolovich .asciz "foo" # string offset=85 428*4b825c74SAlexander Yermolovich.Linfo_string4: 429*4b825c74SAlexander Yermolovich .asciz "_Z3fooi" # string offset=89 430*4b825c74SAlexander Yermolovich.Linfo_string5: 431*4b825c74SAlexander Yermolovich .asciz "int" # string offset=97 432*4b825c74SAlexander Yermolovich.Linfo_string6: 433*4b825c74SAlexander Yermolovich .asciz "i" # string offset=101 434*4b825c74SAlexander Yermolovich.Linfo_string7: 435*4b825c74SAlexander Yermolovich .asciz "main" # string offset=103 436*4b825c74SAlexander Yermolovich.Linfo_string8: 437*4b825c74SAlexander Yermolovich .asciz "argc" # string offset=108 438*4b825c74SAlexander Yermolovich.Linfo_string9: 439*4b825c74SAlexander Yermolovich .asciz "argv" # string offset=113 440*4b825c74SAlexander Yermolovich.Linfo_string10: 441*4b825c74SAlexander Yermolovich .asciz "char" # string offset=118 442*4b825c74SAlexander Yermolovich .section .debug_str_offsets,"",@progbits 443*4b825c74SAlexander Yermolovich .long .Linfo_string0 444*4b825c74SAlexander Yermolovich .long .Linfo_string1 445*4b825c74SAlexander Yermolovich .long .Linfo_string2 446*4b825c74SAlexander Yermolovich .long .Linfo_string4 447*4b825c74SAlexander Yermolovich .long .Linfo_string3 448*4b825c74SAlexander Yermolovich .long .Linfo_string5 449*4b825c74SAlexander Yermolovich .long .Linfo_string6 450*4b825c74SAlexander Yermolovich .long .Linfo_string7 451*4b825c74SAlexander Yermolovich .long .Linfo_string8 452*4b825c74SAlexander Yermolovich .long .Linfo_string9 453*4b825c74SAlexander Yermolovich .long .Linfo_string10 454*4b825c74SAlexander Yermolovich .section .debug_addr,"",@progbits 455*4b825c74SAlexander Yermolovich .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 456*4b825c74SAlexander Yermolovich.Ldebug_addr_start0: 457*4b825c74SAlexander Yermolovich .short 5 # DWARF version number 458*4b825c74SAlexander Yermolovich .byte 8 # Address size 459*4b825c74SAlexander Yermolovich .byte 0 # Segment selector size 460*4b825c74SAlexander Yermolovich.Laddr_table_base0: 461*4b825c74SAlexander Yermolovich .quad .Lfunc_begin0 462*4b825c74SAlexander Yermolovich .quad .Lfunc_begin1 463*4b825c74SAlexander Yermolovich .quad .Ltmp3 464*4b825c74SAlexander Yermolovich.Ldebug_addr_end0: 465*4b825c74SAlexander Yermolovich .section .debug_names,"",@progbits 466*4b825c74SAlexander Yermolovich .long .Lnames_end0-.Lnames_start0 # Header: unit length 467*4b825c74SAlexander Yermolovich.Lnames_start0: 468*4b825c74SAlexander Yermolovich .short 5 # Header: version 469*4b825c74SAlexander Yermolovich .short 0 # Header: padding 470*4b825c74SAlexander Yermolovich .long 1 # Header: compilation unit count 471*4b825c74SAlexander Yermolovich .long 0 # Header: local type unit count 472*4b825c74SAlexander Yermolovich .long 0 # Header: foreign type unit count 473*4b825c74SAlexander Yermolovich .long 5 # Header: bucket count 474*4b825c74SAlexander Yermolovich .long 5 # Header: name count 475*4b825c74SAlexander Yermolovich .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 476*4b825c74SAlexander Yermolovich .long 8 # Header: augmentation string size 477*4b825c74SAlexander Yermolovich .ascii "LLVM0700" # Header: augmentation string 478*4b825c74SAlexander Yermolovich .long .Lcu_begin0 # Compilation unit 0 479*4b825c74SAlexander Yermolovich .long 0 # Bucket 0 480*4b825c74SAlexander Yermolovich .long 1 # Bucket 1 481*4b825c74SAlexander Yermolovich .long 0 # Bucket 2 482*4b825c74SAlexander Yermolovich .long 3 # Bucket 3 483*4b825c74SAlexander Yermolovich .long 4 # Bucket 4 484*4b825c74SAlexander Yermolovich .long 2090499946 # Hash in Bucket 1 485*4b825c74SAlexander Yermolovich .long -1257882370 # Hash in Bucket 1 486*4b825c74SAlexander Yermolovich .long 193495088 # Hash in Bucket 3 487*4b825c74SAlexander Yermolovich .long 193491849 # Hash in Bucket 4 488*4b825c74SAlexander Yermolovich .long 2090147939 # Hash in Bucket 4 489*4b825c74SAlexander Yermolovich .long .Linfo_string7 # String in Bucket 1: main 490*4b825c74SAlexander Yermolovich .long .Linfo_string4 # String in Bucket 1: _Z3fooi 491*4b825c74SAlexander Yermolovich .long .Linfo_string5 # String in Bucket 3: int 492*4b825c74SAlexander Yermolovich .long .Linfo_string3 # String in Bucket 4: foo 493*4b825c74SAlexander Yermolovich .long .Linfo_string10 # String in Bucket 4: char 494*4b825c74SAlexander Yermolovich .long .Lnames3-.Lnames_entries0 # Offset in Bucket 1 495*4b825c74SAlexander Yermolovich .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1 496*4b825c74SAlexander Yermolovich .long .Lnames2-.Lnames_entries0 # Offset in Bucket 3 497*4b825c74SAlexander Yermolovich .long .Lnames0-.Lnames_entries0 # Offset in Bucket 4 498*4b825c74SAlexander Yermolovich .long .Lnames4-.Lnames_entries0 # Offset in Bucket 4 499*4b825c74SAlexander Yermolovich.Lnames_abbrev_start0: 500*4b825c74SAlexander Yermolovich .byte 1 # Abbrev code 501*4b825c74SAlexander Yermolovich .byte 46 # DW_TAG_subprogram 502*4b825c74SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 503*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 504*4b825c74SAlexander Yermolovich .byte 4 # DW_IDX_parent 505*4b825c74SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 506*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev 507*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev 508*4b825c74SAlexander Yermolovich .byte 2 # Abbrev code 509*4b825c74SAlexander Yermolovich .byte 29 # DW_TAG_inlined_subroutine 510*4b825c74SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 511*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 512*4b825c74SAlexander Yermolovich .byte 4 # DW_IDX_parent 513*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 514*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev 515*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev 516*4b825c74SAlexander Yermolovich .byte 3 # Abbrev code 517*4b825c74SAlexander Yermolovich .byte 36 # DW_TAG_base_type 518*4b825c74SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 519*4b825c74SAlexander Yermolovich .byte 19 # DW_FORM_ref4 520*4b825c74SAlexander Yermolovich .byte 4 # DW_IDX_parent 521*4b825c74SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 522*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev 523*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev 524*4b825c74SAlexander Yermolovich .byte 0 # End of abbrev list 525*4b825c74SAlexander Yermolovich.Lnames_abbrev_end0: 526*4b825c74SAlexander Yermolovich.Lnames_entries0: 527*4b825c74SAlexander Yermolovich.Lnames3: 528*4b825c74SAlexander Yermolovich.L2: 529*4b825c74SAlexander Yermolovich .byte 1 # Abbreviation code 530*4b825c74SAlexander Yermolovich .long 78 # DW_IDX_die_offset 531*4b825c74SAlexander Yermolovich .byte 0 # DW_IDX_parent 532*4b825c74SAlexander Yermolovich # End of list: main 533*4b825c74SAlexander Yermolovich.Lnames1: 534*4b825c74SAlexander Yermolovich.L0: 535*4b825c74SAlexander Yermolovich .byte 1 # Abbreviation code 536*4b825c74SAlexander Yermolovich .long 35 # DW_IDX_die_offset 537*4b825c74SAlexander Yermolovich.L3: # DW_IDX_parent 538*4b825c74SAlexander Yermolovich .byte 2 # Abbreviation code 539*4b825c74SAlexander Yermolovich .long 126 # DW_IDX_die_offset 540*4b825c74SAlexander Yermolovich .long .L2-.Lnames_entries0 # DW_IDX_parent 541*4b825c74SAlexander Yermolovich .byte 0 # End of list: _Z3fooi 542*4b825c74SAlexander Yermolovich.Lnames2: 543*4b825c74SAlexander Yermolovich.L1: 544*4b825c74SAlexander Yermolovich .byte 3 # Abbreviation code 545*4b825c74SAlexander Yermolovich .long 74 # DW_IDX_die_offset 546*4b825c74SAlexander Yermolovich .byte 0 # DW_IDX_parent 547*4b825c74SAlexander Yermolovich # End of list: int 548*4b825c74SAlexander Yermolovich.Lnames0: 549*4b825c74SAlexander Yermolovich .byte 1 # Abbreviation code 550*4b825c74SAlexander Yermolovich .long 35 # DW_IDX_die_offset 551*4b825c74SAlexander Yermolovich .byte 2 # DW_IDX_parent 552*4b825c74SAlexander Yermolovich # Abbreviation code 553*4b825c74SAlexander Yermolovich .long 126 # DW_IDX_die_offset 554*4b825c74SAlexander Yermolovich .long .L2-.Lnames_entries0 # DW_IDX_parent 555*4b825c74SAlexander Yermolovich .byte 0 # End of list: foo 556*4b825c74SAlexander Yermolovich.Lnames4: 557*4b825c74SAlexander Yermolovich.L4: 558*4b825c74SAlexander Yermolovich .byte 3 # Abbreviation code 559*4b825c74SAlexander Yermolovich .long 159 # DW_IDX_die_offset 560*4b825c74SAlexander Yermolovich .byte 0 # DW_IDX_parent 561*4b825c74SAlexander Yermolovich # End of list: char 562*4b825c74SAlexander Yermolovich .p2align 2, 0x0 563*4b825c74SAlexander Yermolovich.Lnames_end0: 564*4b825c74SAlexander Yermolovich .ident "clang version 20.0.0git" 565*4b825c74SAlexander Yermolovich .section ".note.GNU-stack","",@progbits 566*4b825c74SAlexander Yermolovich .addrsig 567*4b825c74SAlexander Yermolovich .section .debug_line,"",@progbits 568*4b825c74SAlexander Yermolovich.Lline_table_start0: 569