1*50c0e679SAlexander Yermolovich# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %tmain.o 2*50c0e679SAlexander Yermolovich# RUN: %clang %cflags -gdwarf-5 %tmain.o -o %tmain.exe 3*50c0e679SAlexander Yermolovich# RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections 4*50c0e679SAlexander Yermolovich# RUN: llvm-dwarfdump --debug-names %tmain.exe.bolt > %tlog.txt 5*50c0e679SAlexander Yermolovich# RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s 6*50c0e679SAlexander Yermolovich 7*50c0e679SAlexander Yermolovich## This test checks that bolt correctly generates entry for DW_TAG_union_type for .debug_name section. 8*50c0e679SAlexander Yermolovich 9*50c0e679SAlexander Yermolovich# BOLT: Abbreviations [ 10*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] { 11*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_subprogram 12*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 13*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 14*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 15*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] { 16*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_base_type 17*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 18*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 19*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 20*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] { 21*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_union_type 22*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 23*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_ref4 24*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 25*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbreviation [[ABBREV4:0x[0-9a-f]*]] { 26*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_structure_type 27*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 28*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: DW_FORM_ref4 29*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 30*50c0e679SAlexander Yermolovich# BOLT-NEXT: ] 31*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 0 [ 32*50c0e679SAlexander Yermolovich# BOLT-NEXT: EMPTY 33*50c0e679SAlexander Yermolovich# BOLT-NEXT: ] 34*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 1 [ 35*50c0e679SAlexander Yermolovich# BOLT-NEXT: Name 1 { 36*50c0e679SAlexander Yermolovich# BOLT-NEXT: Hash: 0x7C9A7F6A 37*50c0e679SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "main" 38*50c0e679SAlexander Yermolovich# BOLT-NEXT: Entry @ [[ENTRY:0x[0-9a-f]*]] { 39*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV1]] 40*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_subprogram 41*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x00000024 42*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: <parent not indexed> 43*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 44*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 45*50c0e679SAlexander Yermolovich# BOLT-NEXT: ] 46*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 2 [ 47*50c0e679SAlexander Yermolovich# BOLT-NEXT: EMPTY 48*50c0e679SAlexander Yermolovich# BOLT-NEXT: ] 49*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 3 [ 50*50c0e679SAlexander Yermolovich# BOLT-NEXT: Name 2 { 51*50c0e679SAlexander Yermolovich# BOLT-NEXT: Hash: 0xB888030 52*50c0e679SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "int" 53*50c0e679SAlexander Yermolovich# BOLT-NEXT: Entry @ {{.+}} { 54*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV2]] 55*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_base_type 56*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x00000083 57*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: <parent not indexed> 58*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 59*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 60*50c0e679SAlexander Yermolovich# BOLT-NEXT: Name 3 { 61*50c0e679SAlexander Yermolovich# BOLT-NEXT: Hash: 0xED0F01B4 62*50c0e679SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "MyUnion" 63*50c0e679SAlexander Yermolovich# BOLT-NEXT: Entry @ {{.+}} { 64*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV3]] 65*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_union_type 66*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x00000049 67*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: Entry @ [[ENTRY]] 68*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 69*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 70*50c0e679SAlexander Yermolovich# BOLT-NEXT: ] 71*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 4 [ 72*50c0e679SAlexander Yermolovich# BOLT-NEXT: Name 4 { 73*50c0e679SAlexander Yermolovich# BOLT-NEXT: Hash: 0x8AB681F0 74*50c0e679SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "MyStruct" 75*50c0e679SAlexander Yermolovich# BOLT-NEXT: Entry @ [[ENTRY2:0x[0-9a-f]*]] { 76*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV4]] 77*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_structure_type 78*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x00000062 79*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: Entry @ [[ENTRY]] 80*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 81*50c0e679SAlexander Yermolovich# BOLT-NEXT: } 82*50c0e679SAlexander Yermolovich# BOLT-NEXT: Name 5 { 83*50c0e679SAlexander Yermolovich# BOLT-NEXT: Hash: 0x8EEF3866 84*50c0e679SAlexander Yermolovich# BOLT-NEXT: String: {{.+}} "MyUnion2" 85*50c0e679SAlexander Yermolovich# BOLT-NEXT: Entry @ {{.+}} { 86*50c0e679SAlexander Yermolovich# BOLT-NEXT: Abbrev: [[ABBREV3]] 87*50c0e679SAlexander Yermolovich# BOLT-NEXT: Tag: DW_TAG_union_type 88*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_die_offset: 0x00000071 89*50c0e679SAlexander Yermolovich# BOLT-NEXT: DW_IDX_parent: Entry @ [[ENTRY2]] 90*50c0e679SAlexander Yermolovich 91*50c0e679SAlexander Yermolovich 92*50c0e679SAlexander Yermolovich## int main() { 93*50c0e679SAlexander Yermolovich## union MyUnion { 94*50c0e679SAlexander Yermolovich## int a; 95*50c0e679SAlexander Yermolovich## int b; 96*50c0e679SAlexander Yermolovich## }; 97*50c0e679SAlexander Yermolovich## struct MyStruct { 98*50c0e679SAlexander Yermolovich## union MyUnion2 { 99*50c0e679SAlexander Yermolovich## int a; 100*50c0e679SAlexander Yermolovich## }; 101*50c0e679SAlexander Yermolovich## MyUnion2 myUnion2; 102*50c0e679SAlexander Yermolovich## }; 103*50c0e679SAlexander Yermolovich## MyUnion myEnum; 104*50c0e679SAlexander Yermolovich## myEnum.a = 5; 105*50c0e679SAlexander Yermolovich## MyStruct myStruct; 106*50c0e679SAlexander Yermolovich## return myEnum.a + myStruct.myUnion2.a; 107*50c0e679SAlexander Yermolovich## } 108*50c0e679SAlexander Yermolovich 109*50c0e679SAlexander Yermolovich .text 110*50c0e679SAlexander Yermolovich .file "main.cpp" 111*50c0e679SAlexander Yermolovich .globl main # -- Begin function main 112*50c0e679SAlexander Yermolovich .p2align 4, 0x90 113*50c0e679SAlexander Yermolovich .type main,@function 114*50c0e679SAlexander Yermolovichmain: # @main 115*50c0e679SAlexander Yermolovich.Lfunc_begin0: 116*50c0e679SAlexander Yermolovich .file 0 "union" "main.cpp" md5 0xb75b2512f2daa57bbcfe0c29f56d95f4 117*50c0e679SAlexander Yermolovich .loc 0 1 0 # main.cpp:1:0 118*50c0e679SAlexander Yermolovich retq 119*50c0e679SAlexander Yermolovich.Lfunc_end0: 120*50c0e679SAlexander Yermolovich .size main, .-main 121*50c0e679SAlexander Yermolovich # -- End function 122*50c0e679SAlexander Yermolovich .section .debug_abbrev,"",@progbits 123*50c0e679SAlexander Yermolovich .byte 1 # Abbreviation Code 124*50c0e679SAlexander Yermolovich .byte 17 # DW_TAG_compile_unit 125*50c0e679SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 126*50c0e679SAlexander Yermolovich .byte 37 # DW_AT_producer 127*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 128*50c0e679SAlexander Yermolovich .byte 19 # DW_AT_language 129*50c0e679SAlexander Yermolovich .byte 5 # DW_FORM_data2 130*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 131*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 132*50c0e679SAlexander Yermolovich .byte 114 # DW_AT_str_offsets_base 133*50c0e679SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 134*50c0e679SAlexander Yermolovich .byte 16 # DW_AT_stmt_list 135*50c0e679SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 136*50c0e679SAlexander Yermolovich .byte 27 # DW_AT_comp_dir 137*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 138*50c0e679SAlexander Yermolovich .byte 17 # DW_AT_low_pc 139*50c0e679SAlexander Yermolovich .byte 27 # DW_FORM_addrx 140*50c0e679SAlexander Yermolovich .byte 18 # DW_AT_high_pc 141*50c0e679SAlexander Yermolovich .byte 6 # DW_FORM_data4 142*50c0e679SAlexander Yermolovich .byte 115 # DW_AT_addr_base 143*50c0e679SAlexander Yermolovich .byte 23 # DW_FORM_sec_offset 144*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 145*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 146*50c0e679SAlexander Yermolovich .byte 2 # Abbreviation Code 147*50c0e679SAlexander Yermolovich .byte 46 # DW_TAG_subprogram 148*50c0e679SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 149*50c0e679SAlexander Yermolovich .byte 17 # DW_AT_low_pc 150*50c0e679SAlexander Yermolovich .byte 27 # DW_FORM_addrx 151*50c0e679SAlexander Yermolovich .byte 18 # DW_AT_high_pc 152*50c0e679SAlexander Yermolovich .byte 6 # DW_FORM_data4 153*50c0e679SAlexander Yermolovich .byte 64 # DW_AT_frame_base 154*50c0e679SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 155*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 156*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 157*50c0e679SAlexander Yermolovich .byte 58 # DW_AT_decl_file 158*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 159*50c0e679SAlexander Yermolovich .byte 59 # DW_AT_decl_line 160*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 161*50c0e679SAlexander Yermolovich .byte 73 # DW_AT_type 162*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 163*50c0e679SAlexander Yermolovich .byte 63 # DW_AT_external 164*50c0e679SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 165*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 166*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 167*50c0e679SAlexander Yermolovich .byte 3 # Abbreviation Code 168*50c0e679SAlexander Yermolovich .byte 52 # DW_TAG_variable 169*50c0e679SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 170*50c0e679SAlexander Yermolovich .byte 2 # DW_AT_location 171*50c0e679SAlexander Yermolovich .byte 24 # DW_FORM_exprloc 172*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 173*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 174*50c0e679SAlexander Yermolovich .byte 58 # DW_AT_decl_file 175*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 176*50c0e679SAlexander Yermolovich .byte 59 # DW_AT_decl_line 177*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 178*50c0e679SAlexander Yermolovich .byte 73 # DW_AT_type 179*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 180*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 181*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 182*50c0e679SAlexander Yermolovich .byte 4 # Abbreviation Code 183*50c0e679SAlexander Yermolovich .byte 23 # DW_TAG_union_type 184*50c0e679SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 185*50c0e679SAlexander Yermolovich .byte 54 # DW_AT_calling_convention 186*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 187*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 188*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 189*50c0e679SAlexander Yermolovich .byte 11 # DW_AT_byte_size 190*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 191*50c0e679SAlexander Yermolovich .byte 58 # DW_AT_decl_file 192*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 193*50c0e679SAlexander Yermolovich .byte 59 # DW_AT_decl_line 194*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 195*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 196*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 197*50c0e679SAlexander Yermolovich .byte 5 # Abbreviation Code 198*50c0e679SAlexander Yermolovich .byte 13 # DW_TAG_member 199*50c0e679SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 200*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 201*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 202*50c0e679SAlexander Yermolovich .byte 73 # DW_AT_type 203*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 204*50c0e679SAlexander Yermolovich .byte 58 # DW_AT_decl_file 205*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 206*50c0e679SAlexander Yermolovich .byte 59 # DW_AT_decl_line 207*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 208*50c0e679SAlexander Yermolovich .byte 56 # DW_AT_data_member_location 209*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 210*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 211*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 212*50c0e679SAlexander Yermolovich .byte 6 # Abbreviation Code 213*50c0e679SAlexander Yermolovich .byte 19 # DW_TAG_structure_type 214*50c0e679SAlexander Yermolovich .byte 1 # DW_CHILDREN_yes 215*50c0e679SAlexander Yermolovich .byte 54 # DW_AT_calling_convention 216*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 217*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 218*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 219*50c0e679SAlexander Yermolovich .byte 11 # DW_AT_byte_size 220*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 221*50c0e679SAlexander Yermolovich .byte 58 # DW_AT_decl_file 222*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 223*50c0e679SAlexander Yermolovich .byte 59 # DW_AT_decl_line 224*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 225*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 226*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 227*50c0e679SAlexander Yermolovich .byte 7 # Abbreviation Code 228*50c0e679SAlexander Yermolovich .byte 36 # DW_TAG_base_type 229*50c0e679SAlexander Yermolovich .byte 0 # DW_CHILDREN_no 230*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 231*50c0e679SAlexander Yermolovich .byte 37 # DW_FORM_strx1 232*50c0e679SAlexander Yermolovich .byte 62 # DW_AT_encoding 233*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 234*50c0e679SAlexander Yermolovich .byte 11 # DW_AT_byte_size 235*50c0e679SAlexander Yermolovich .byte 11 # DW_FORM_data1 236*50c0e679SAlexander Yermolovich .byte 0 # EOM(1) 237*50c0e679SAlexander Yermolovich .byte 0 # EOM(2) 238*50c0e679SAlexander Yermolovich .byte 0 # EOM(3) 239*50c0e679SAlexander Yermolovich .section .debug_info,"",@progbits 240*50c0e679SAlexander Yermolovich.Lcu_begin0: 241*50c0e679SAlexander Yermolovich .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 242*50c0e679SAlexander Yermolovich.Ldebug_info_start0: 243*50c0e679SAlexander Yermolovich .short 5 # DWARF version number 244*50c0e679SAlexander Yermolovich .byte 1 # DWARF Unit Type 245*50c0e679SAlexander Yermolovich .byte 8 # Address Size (in bytes) 246*50c0e679SAlexander Yermolovich .long .debug_abbrev # Offset Into Abbrev. Section 247*50c0e679SAlexander Yermolovich .byte 1 # Abbrev [1] 0xc:0x7b DW_TAG_compile_unit 248*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_producer 249*50c0e679SAlexander Yermolovich .short 33 # DW_AT_language 250*50c0e679SAlexander Yermolovich .byte 1 # DW_AT_name 251*50c0e679SAlexander Yermolovich .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 252*50c0e679SAlexander Yermolovich .long .Lline_table_start0 # DW_AT_stmt_list 253*50c0e679SAlexander Yermolovich .byte 2 # DW_AT_comp_dir 254*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_low_pc 255*50c0e679SAlexander Yermolovich .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 256*50c0e679SAlexander Yermolovich .long .Laddr_table_base0 # DW_AT_addr_base 257*50c0e679SAlexander Yermolovich .byte 2 # Abbrev [2] 0x23:0x5f DW_TAG_subprogram 258*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_low_pc 259*50c0e679SAlexander Yermolovich .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 260*50c0e679SAlexander Yermolovich .byte 1 # DW_AT_frame_base 261*50c0e679SAlexander Yermolovich .byte 86 262*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_name 263*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 264*50c0e679SAlexander Yermolovich .byte 1 # DW_AT_decl_line 265*50c0e679SAlexander Yermolovich .long 130 # DW_AT_type 266*50c0e679SAlexander Yermolovich # DW_AT_external 267*50c0e679SAlexander Yermolovich .byte 3 # Abbrev [3] 0x32:0xb DW_TAG_variable 268*50c0e679SAlexander Yermolovich .byte 2 # DW_AT_location 269*50c0e679SAlexander Yermolovich .byte 145 270*50c0e679SAlexander Yermolovich .byte 120 271*50c0e679SAlexander Yermolovich .byte 5 # DW_AT_name 272*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 273*50c0e679SAlexander Yermolovich .byte 12 # DW_AT_decl_line 274*50c0e679SAlexander Yermolovich .long 72 # DW_AT_type 275*50c0e679SAlexander Yermolovich .byte 3 # Abbrev [3] 0x3d:0xb DW_TAG_variable 276*50c0e679SAlexander Yermolovich .byte 2 # DW_AT_location 277*50c0e679SAlexander Yermolovich .byte 145 278*50c0e679SAlexander Yermolovich .byte 116 279*50c0e679SAlexander Yermolovich .byte 9 # DW_AT_name 280*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 281*50c0e679SAlexander Yermolovich .byte 14 # DW_AT_decl_line 282*50c0e679SAlexander Yermolovich .long 97 # DW_AT_type 283*50c0e679SAlexander Yermolovich .byte 4 # Abbrev [4] 0x48:0x19 DW_TAG_union_type 284*50c0e679SAlexander Yermolovich .byte 5 # DW_AT_calling_convention 285*50c0e679SAlexander Yermolovich .byte 8 # DW_AT_name 286*50c0e679SAlexander Yermolovich .byte 4 # DW_AT_byte_size 287*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 288*50c0e679SAlexander Yermolovich .byte 2 # DW_AT_decl_line 289*50c0e679SAlexander Yermolovich .byte 5 # Abbrev [5] 0x4e:0x9 DW_TAG_member 290*50c0e679SAlexander Yermolovich .byte 6 # DW_AT_name 291*50c0e679SAlexander Yermolovich .long 130 # DW_AT_type 292*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 293*50c0e679SAlexander Yermolovich .byte 3 # DW_AT_decl_line 294*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_data_member_location 295*50c0e679SAlexander Yermolovich .byte 5 # Abbrev [5] 0x57:0x9 DW_TAG_member 296*50c0e679SAlexander Yermolovich .byte 7 # DW_AT_name 297*50c0e679SAlexander Yermolovich .long 130 # DW_AT_type 298*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 299*50c0e679SAlexander Yermolovich .byte 4 # DW_AT_decl_line 300*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_data_member_location 301*50c0e679SAlexander Yermolovich .byte 0 # End Of Children Mark 302*50c0e679SAlexander Yermolovich .byte 6 # Abbrev [6] 0x61:0x20 DW_TAG_structure_type 303*50c0e679SAlexander Yermolovich .byte 5 # DW_AT_calling_convention 304*50c0e679SAlexander Yermolovich .byte 12 # DW_AT_name 305*50c0e679SAlexander Yermolovich .byte 4 # DW_AT_byte_size 306*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 307*50c0e679SAlexander Yermolovich .byte 6 # DW_AT_decl_line 308*50c0e679SAlexander Yermolovich .byte 5 # Abbrev [5] 0x67:0x9 DW_TAG_member 309*50c0e679SAlexander Yermolovich .byte 10 # DW_AT_name 310*50c0e679SAlexander Yermolovich .long 112 # DW_AT_type 311*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 312*50c0e679SAlexander Yermolovich .byte 10 # DW_AT_decl_line 313*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_data_member_location 314*50c0e679SAlexander Yermolovich .byte 4 # Abbrev [4] 0x70:0x10 DW_TAG_union_type 315*50c0e679SAlexander Yermolovich .byte 5 # DW_AT_calling_convention 316*50c0e679SAlexander Yermolovich .byte 11 # DW_AT_name 317*50c0e679SAlexander Yermolovich .byte 4 # DW_AT_byte_size 318*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 319*50c0e679SAlexander Yermolovich .byte 7 # DW_AT_decl_line 320*50c0e679SAlexander Yermolovich .byte 5 # Abbrev [5] 0x76:0x9 DW_TAG_member 321*50c0e679SAlexander Yermolovich .byte 6 # DW_AT_name 322*50c0e679SAlexander Yermolovich .long 130 # DW_AT_type 323*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_decl_file 324*50c0e679SAlexander Yermolovich .byte 8 # DW_AT_decl_line 325*50c0e679SAlexander Yermolovich .byte 0 # DW_AT_data_member_location 326*50c0e679SAlexander Yermolovich .byte 0 # End Of Children Mark 327*50c0e679SAlexander Yermolovich .byte 0 # End Of Children Mark 328*50c0e679SAlexander Yermolovich .byte 0 # End Of Children Mark 329*50c0e679SAlexander Yermolovich .byte 7 # Abbrev [7] 0x82:0x4 DW_TAG_base_type 330*50c0e679SAlexander Yermolovich .byte 4 # DW_AT_name 331*50c0e679SAlexander Yermolovich .byte 5 # DW_AT_encoding 332*50c0e679SAlexander Yermolovich .byte 4 # DW_AT_byte_size 333*50c0e679SAlexander Yermolovich .byte 0 # End Of Children Mark 334*50c0e679SAlexander Yermolovich.Ldebug_info_end0: 335*50c0e679SAlexander Yermolovich .section .debug_str_offsets,"",@progbits 336*50c0e679SAlexander Yermolovich .long 56 # Length of String Offsets Set 337*50c0e679SAlexander Yermolovich .short 5 338*50c0e679SAlexander Yermolovich .short 0 339*50c0e679SAlexander Yermolovich.Lstr_offsets_base0: 340*50c0e679SAlexander Yermolovich .section .debug_str,"MS",@progbits,1 341*50c0e679SAlexander Yermolovich.Linfo_string0: 342*50c0e679SAlexander Yermolovich .asciz "clang version 20.0.0git" # string offset=0 343*50c0e679SAlexander Yermolovich.Linfo_string1: 344*50c0e679SAlexander Yermolovich .asciz "main.cpp" # string offset=24 345*50c0e679SAlexander Yermolovich.Linfo_string2: 346*50c0e679SAlexander Yermolovich .asciz "union" # string offset=33 347*50c0e679SAlexander Yermolovich.Linfo_string3: 348*50c0e679SAlexander Yermolovich .asciz "main" # string offset=77 349*50c0e679SAlexander Yermolovich.Linfo_string4: 350*50c0e679SAlexander Yermolovich .asciz "int" # string offset=82 351*50c0e679SAlexander Yermolovich.Linfo_string5: 352*50c0e679SAlexander Yermolovich .asciz "myEnum" # string offset=86 353*50c0e679SAlexander Yermolovich.Linfo_string6: 354*50c0e679SAlexander Yermolovich .asciz "MyUnion" # string offset=93 355*50c0e679SAlexander Yermolovich.Linfo_string7: 356*50c0e679SAlexander Yermolovich .asciz "a" # string offset=101 357*50c0e679SAlexander Yermolovich.Linfo_string8: 358*50c0e679SAlexander Yermolovich .asciz "b" # string offset=103 359*50c0e679SAlexander Yermolovich.Linfo_string9: 360*50c0e679SAlexander Yermolovich .asciz "myStruct" # string offset=105 361*50c0e679SAlexander Yermolovich.Linfo_string10: 362*50c0e679SAlexander Yermolovich .asciz "MyStruct" # string offset=114 363*50c0e679SAlexander Yermolovich.Linfo_string11: 364*50c0e679SAlexander Yermolovich .asciz "myUnion2" # string offset=123 365*50c0e679SAlexander Yermolovich.Linfo_string12: 366*50c0e679SAlexander Yermolovich .asciz "MyUnion2" # string offset=132 367*50c0e679SAlexander Yermolovich .section .debug_str_offsets,"",@progbits 368*50c0e679SAlexander Yermolovich .long .Linfo_string0 369*50c0e679SAlexander Yermolovich .long .Linfo_string1 370*50c0e679SAlexander Yermolovich .long .Linfo_string2 371*50c0e679SAlexander Yermolovich .long .Linfo_string3 372*50c0e679SAlexander Yermolovich .long .Linfo_string4 373*50c0e679SAlexander Yermolovich .long .Linfo_string5 374*50c0e679SAlexander Yermolovich .long .Linfo_string7 375*50c0e679SAlexander Yermolovich .long .Linfo_string8 376*50c0e679SAlexander Yermolovich .long .Linfo_string6 377*50c0e679SAlexander Yermolovich .long .Linfo_string9 378*50c0e679SAlexander Yermolovich .long .Linfo_string11 379*50c0e679SAlexander Yermolovich .long .Linfo_string12 380*50c0e679SAlexander Yermolovich .long .Linfo_string10 381*50c0e679SAlexander Yermolovich .section .debug_addr,"",@progbits 382*50c0e679SAlexander Yermolovich .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 383*50c0e679SAlexander Yermolovich.Ldebug_addr_start0: 384*50c0e679SAlexander Yermolovich .short 5 # DWARF version number 385*50c0e679SAlexander Yermolovich .byte 8 # Address size 386*50c0e679SAlexander Yermolovich .byte 0 # Segment selector size 387*50c0e679SAlexander Yermolovich.Laddr_table_base0: 388*50c0e679SAlexander Yermolovich .quad .Lfunc_begin0 389*50c0e679SAlexander Yermolovich.Ldebug_addr_end0: 390*50c0e679SAlexander Yermolovich .section .debug_names,"",@progbits 391*50c0e679SAlexander Yermolovich .long .Lnames_end0-.Lnames_start0 # Header: unit length 392*50c0e679SAlexander Yermolovich.Lnames_start0: 393*50c0e679SAlexander Yermolovich .short 5 # Header: version 394*50c0e679SAlexander Yermolovich .short 0 # Header: padding 395*50c0e679SAlexander Yermolovich .long 1 # Header: compilation unit count 396*50c0e679SAlexander Yermolovich .long 0 # Header: local type unit count 397*50c0e679SAlexander Yermolovich .long 0 # Header: foreign type unit count 398*50c0e679SAlexander Yermolovich .long 5 # Header: bucket count 399*50c0e679SAlexander Yermolovich .long 5 # Header: name count 400*50c0e679SAlexander Yermolovich .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 401*50c0e679SAlexander Yermolovich .long 8 # Header: augmentation string size 402*50c0e679SAlexander Yermolovich .ascii "LLVM0700" # Header: augmentation string 403*50c0e679SAlexander Yermolovich .long .Lcu_begin0 # Compilation unit 0 404*50c0e679SAlexander Yermolovich .long 0 # Bucket 0 405*50c0e679SAlexander Yermolovich .long 1 # Bucket 1 406*50c0e679SAlexander Yermolovich .long 0 # Bucket 2 407*50c0e679SAlexander Yermolovich .long 2 # Bucket 3 408*50c0e679SAlexander Yermolovich .long 4 # Bucket 4 409*50c0e679SAlexander Yermolovich .long 2090499946 # Hash in Bucket 1 410*50c0e679SAlexander Yermolovich .long 193495088 # Hash in Bucket 3 411*50c0e679SAlexander Yermolovich .long -317783628 # Hash in Bucket 3 412*50c0e679SAlexander Yermolovich .long -1967750672 # Hash in Bucket 4 413*50c0e679SAlexander Yermolovich .long -1896925082 # Hash in Bucket 4 414*50c0e679SAlexander Yermolovich .long .Linfo_string3 # String in Bucket 1: main 415*50c0e679SAlexander Yermolovich .long .Linfo_string4 # String in Bucket 3: int 416*50c0e679SAlexander Yermolovich .long .Linfo_string6 # String in Bucket 3: MyUnion 417*50c0e679SAlexander Yermolovich .long .Linfo_string10 # String in Bucket 4: MyStruct 418*50c0e679SAlexander Yermolovich .long .Linfo_string12 # String in Bucket 4: MyUnion2 419*50c0e679SAlexander Yermolovich .long .Lnames0-.Lnames_entries0 # Offset in Bucket 1 420*50c0e679SAlexander Yermolovich .long .Lnames1-.Lnames_entries0 # Offset in Bucket 3 421*50c0e679SAlexander Yermolovich .long .Lnames2-.Lnames_entries0 # Offset in Bucket 3 422*50c0e679SAlexander Yermolovich .long .Lnames3-.Lnames_entries0 # Offset in Bucket 4 423*50c0e679SAlexander Yermolovich .long .Lnames4-.Lnames_entries0 # Offset in Bucket 4 424*50c0e679SAlexander Yermolovich.Lnames_abbrev_start0: 425*50c0e679SAlexander Yermolovich .byte 1 # Abbrev code 426*50c0e679SAlexander Yermolovich .byte 46 # DW_TAG_subprogram 427*50c0e679SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 428*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 429*50c0e679SAlexander Yermolovich .byte 4 # DW_IDX_parent 430*50c0e679SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 431*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 432*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 433*50c0e679SAlexander Yermolovich .byte 2 # Abbrev code 434*50c0e679SAlexander Yermolovich .byte 36 # DW_TAG_base_type 435*50c0e679SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 436*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 437*50c0e679SAlexander Yermolovich .byte 4 # DW_IDX_parent 438*50c0e679SAlexander Yermolovich .byte 25 # DW_FORM_flag_present 439*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 440*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 441*50c0e679SAlexander Yermolovich .byte 3 # Abbrev code 442*50c0e679SAlexander Yermolovich .byte 23 # DW_TAG_union_type 443*50c0e679SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 444*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 445*50c0e679SAlexander Yermolovich .byte 4 # DW_IDX_parent 446*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 447*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 448*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 449*50c0e679SAlexander Yermolovich .byte 4 # Abbrev code 450*50c0e679SAlexander Yermolovich .byte 19 # DW_TAG_structure_type 451*50c0e679SAlexander Yermolovich .byte 3 # DW_IDX_die_offset 452*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 453*50c0e679SAlexander Yermolovich .byte 4 # DW_IDX_parent 454*50c0e679SAlexander Yermolovich .byte 19 # DW_FORM_ref4 455*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 456*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev 457*50c0e679SAlexander Yermolovich .byte 0 # End of abbrev list 458*50c0e679SAlexander Yermolovich.Lnames_abbrev_end0: 459*50c0e679SAlexander Yermolovich.Lnames_entries0: 460*50c0e679SAlexander Yermolovich.Lnames0: 461*50c0e679SAlexander Yermolovich.L3: 462*50c0e679SAlexander Yermolovich .byte 1 # Abbreviation code 463*50c0e679SAlexander Yermolovich .long 35 # DW_IDX_die_offset 464*50c0e679SAlexander Yermolovich .byte 0 # DW_IDX_parent 465*50c0e679SAlexander Yermolovich # End of list: main 466*50c0e679SAlexander Yermolovich.Lnames1: 467*50c0e679SAlexander Yermolovich.L1: 468*50c0e679SAlexander Yermolovich .byte 2 # Abbreviation code 469*50c0e679SAlexander Yermolovich .long 130 # DW_IDX_die_offset 470*50c0e679SAlexander Yermolovich .byte 0 # DW_IDX_parent 471*50c0e679SAlexander Yermolovich # End of list: int 472*50c0e679SAlexander Yermolovich.Lnames2: 473*50c0e679SAlexander Yermolovich.L4: 474*50c0e679SAlexander Yermolovich .byte 3 # Abbreviation code 475*50c0e679SAlexander Yermolovich .long 72 # DW_IDX_die_offset 476*50c0e679SAlexander Yermolovich .long .L3-.Lnames_entries0 # DW_IDX_parent 477*50c0e679SAlexander Yermolovich .byte 0 # End of list: MyUnion 478*50c0e679SAlexander Yermolovich.Lnames3: 479*50c0e679SAlexander Yermolovich.L2: 480*50c0e679SAlexander Yermolovich .byte 4 # Abbreviation code 481*50c0e679SAlexander Yermolovich .long 97 # DW_IDX_die_offset 482*50c0e679SAlexander Yermolovich .long .L3-.Lnames_entries0 # DW_IDX_parent 483*50c0e679SAlexander Yermolovich .byte 0 # End of list: MyStruct 484*50c0e679SAlexander Yermolovich.Lnames4: 485*50c0e679SAlexander Yermolovich.L0: 486*50c0e679SAlexander Yermolovich .byte 3 # Abbreviation code 487*50c0e679SAlexander Yermolovich .long 112 # DW_IDX_die_offset 488*50c0e679SAlexander Yermolovich .long .L2-.Lnames_entries0 # DW_IDX_parent 489*50c0e679SAlexander Yermolovich .byte 0 # End of list: MyUnion2 490*50c0e679SAlexander Yermolovich .p2align 2, 0x0 491*50c0e679SAlexander Yermolovich.Lnames_end0: 492*50c0e679SAlexander Yermolovich .ident "clang version 20.0.0git" 493*50c0e679SAlexander Yermolovich .section ".note.GNU-stack","",@progbits 494*50c0e679SAlexander Yermolovich .addrsig 495*50c0e679SAlexander Yermolovich .section .debug_line,"",@progbits 496*50c0e679SAlexander Yermolovich.Lline_table_start0: 497