1# struct Foo2a { 2# char *c1; 3# char *c2; 4# char *c3; 5# }; 6# struct Foo3 { 7# char *c1; 8# char *c2; 9# }; 10# 11# int foo() { 12# Foo2a f; 13# Foo3 f2; 14# return 0; 15# } 16 .text 17 .file "helper.cpp" 18 .globl _Z3foov # -- Begin function _Z3foov 19 .p2align 4, 0x90 20 .type _Z3foov,@function 21_Z3foov: # @_Z3foov 22.Lfunc_begin0: 23 .file 0 "." "helper.cpp" md5 0x650c984f17ca3a4e7785e30e6ca8f130 24 .loc 0 11 0 # helper.cpp:11:0 25 .cfi_startproc 26# %bb.0: 27 pushq %rbp 28 .cfi_def_cfa_offset 16 29 .cfi_offset %rbp, -16 30 movq %rsp, %rbp 31 .cfi_def_cfa_register %rbp 32.Ltmp0: 33 .loc 0 14 3 prologue_end # helper.cpp:14:3 34 xorl %eax, %eax 35 .loc 0 14 3 epilogue_begin is_stmt 0 # helper.cpp:14:3 36 popq %rbp 37 .cfi_def_cfa %rsp, 8 38 retq 39.Ltmp1: 40.Lfunc_end0: 41 .size _Z3foov, .Lfunc_end0-_Z3foov 42 .cfi_endproc 43 # -- End function 44 .section .debug_info.dwo,"e",@progbits 45 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit 46.Ldebug_info_dwo_start0: 47 .short 5 # DWARF version number 48 .byte 6 # DWARF Unit Type 49 .byte 8 # Address Size (in bytes) 50 .long 0 # Offset Into Abbrev. Section 51 .quad 1175092228111723119 # Type Signature 52 .long 31 # Type DIE Offset 53 .byte 1 # Abbrev [1] 0x18:0x33 DW_TAG_type_unit 54 .short 33 # DW_AT_language 55 .long 0 # DW_AT_stmt_list 56 .byte 2 # Abbrev [2] 0x1f:0x22 DW_TAG_structure_type 57 .byte 5 # DW_AT_calling_convention 58 .byte 8 # DW_AT_name 59 .byte 24 # DW_AT_byte_size 60 .byte 0 # DW_AT_decl_file 61 .byte 1 # DW_AT_decl_line 62 .byte 3 # Abbrev [3] 0x25:0x9 DW_TAG_member 63 .byte 4 # DW_AT_name 64 .long 65 # DW_AT_type 65 .byte 0 # DW_AT_decl_file 66 .byte 2 # DW_AT_decl_line 67 .byte 0 # DW_AT_data_member_location 68 .byte 3 # Abbrev [3] 0x2e:0x9 DW_TAG_member 69 .byte 6 # DW_AT_name 70 .long 65 # DW_AT_type 71 .byte 0 # DW_AT_decl_file 72 .byte 3 # DW_AT_decl_line 73 .byte 8 # DW_AT_data_member_location 74 .byte 3 # Abbrev [3] 0x37:0x9 DW_TAG_member 75 .byte 7 # DW_AT_name 76 .long 65 # DW_AT_type 77 .byte 0 # DW_AT_decl_file 78 .byte 4 # DW_AT_decl_line 79 .byte 16 # DW_AT_data_member_location 80 .byte 0 # End Of Children Mark 81 .byte 4 # Abbrev [4] 0x41:0x5 DW_TAG_pointer_type 82 .long 70 # DW_AT_type 83 .byte 5 # Abbrev [5] 0x46:0x4 DW_TAG_base_type 84 .byte 5 # DW_AT_name 85 .byte 6 # DW_AT_encoding 86 .byte 1 # DW_AT_byte_size 87 .byte 0 # End Of Children Mark 88.Ldebug_info_dwo_end0: 89 .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit 90.Ldebug_info_dwo_start1: 91 .short 5 # DWARF version number 92 .byte 6 # DWARF Unit Type 93 .byte 8 # Address Size (in bytes) 94 .long 0 # Offset Into Abbrev. Section 95 .quad -5451594423976726044 # Type Signature 96 .long 31 # Type DIE Offset 97 .byte 1 # Abbrev [1] 0x18:0x2a DW_TAG_type_unit 98 .short 33 # DW_AT_language 99 .long 0 # DW_AT_stmt_list 100 .byte 2 # Abbrev [2] 0x1f:0x19 DW_TAG_structure_type 101 .byte 5 # DW_AT_calling_convention 102 .byte 10 # DW_AT_name 103 .byte 16 # DW_AT_byte_size 104 .byte 0 # DW_AT_decl_file 105 .byte 6 # DW_AT_decl_line 106 .byte 3 # Abbrev [3] 0x25:0x9 DW_TAG_member 107 .byte 4 # DW_AT_name 108 .long 56 # DW_AT_type 109 .byte 0 # DW_AT_decl_file 110 .byte 7 # DW_AT_decl_line 111 .byte 0 # DW_AT_data_member_location 112 .byte 3 # Abbrev [3] 0x2e:0x9 DW_TAG_member 113 .byte 6 # DW_AT_name 114 .long 56 # DW_AT_type 115 .byte 0 # DW_AT_decl_file 116 .byte 8 # DW_AT_decl_line 117 .byte 8 # DW_AT_data_member_location 118 .byte 0 # End Of Children Mark 119 .byte 4 # Abbrev [4] 0x38:0x5 DW_TAG_pointer_type 120 .long 61 # DW_AT_type 121 .byte 5 # Abbrev [5] 0x3d:0x4 DW_TAG_base_type 122 .byte 5 # DW_AT_name 123 .byte 6 # DW_AT_encoding 124 .byte 1 # DW_AT_byte_size 125 .byte 0 # End Of Children Mark 126.Ldebug_info_dwo_end1: 127 .section .debug_abbrev,"",@progbits 128 .byte 1 # Abbreviation Code 129 .byte 74 # DW_TAG_skeleton_unit 130 .byte 0 # DW_CHILDREN_no 131 .byte 16 # DW_AT_stmt_list 132 .byte 23 # DW_FORM_sec_offset 133 .byte 114 # DW_AT_str_offsets_base 134 .byte 23 # DW_FORM_sec_offset 135 .byte 27 # DW_AT_comp_dir 136 .byte 37 # DW_FORM_strx1 137 .ascii "\264B" # DW_AT_GNU_pubnames 138 .byte 25 # DW_FORM_flag_present 139 .byte 118 # DW_AT_dwo_name 140 .byte 37 # DW_FORM_strx1 141 .byte 17 # DW_AT_low_pc 142 .byte 27 # DW_FORM_addrx 143 .byte 18 # DW_AT_high_pc 144 .byte 6 # DW_FORM_data4 145 .byte 115 # DW_AT_addr_base 146 .byte 23 # DW_FORM_sec_offset 147 .byte 0 # EOM(1) 148 .byte 0 # EOM(2) 149 .byte 0 # EOM(3) 150 .section .debug_info,"",@progbits 151.Lcu_begin0: 152 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 153.Ldebug_info_start0: 154 .short 5 # DWARF version number 155 .byte 4 # DWARF Unit Type 156 .byte 8 # Address Size (in bytes) 157 .long .debug_abbrev # Offset Into Abbrev. Section 158 .quad 8590827077411666803 159 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit 160 .long .Lline_table_start0 # DW_AT_stmt_list 161 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 162 .byte 0 # DW_AT_comp_dir 163 # DW_AT_GNU_pubnames 164 .byte 1 # DW_AT_dwo_name 165 .byte 0 # DW_AT_low_pc 166 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 167 .long .Laddr_table_base0 # DW_AT_addr_base 168.Ldebug_info_end0: 169 .section .debug_str_offsets,"",@progbits 170 .long 12 # Length of String Offsets Set 171 .short 5 172 .short 0 173.Lstr_offsets_base0: 174 .section .debug_str,"MS",@progbits,1 175.Lskel_string0: 176 .asciz "." # string offset=0 177.Lskel_string1: 178 .asciz "helper.dwo" # string offset=68 179 .section .debug_str_offsets,"",@progbits 180 .long .Lskel_string0 181 .long .Lskel_string1 182 .section .debug_str_offsets.dwo,"e",@progbits 183 .long 60 # Length of String Offsets Set 184 .short 5 185 .short 0 186 .section .debug_str.dwo,"eMS",@progbits,1 187.Linfo_string0: 188 .asciz "_Z3foov" # string offset=0 189.Linfo_string1: 190 .asciz "foo" # string offset=8 191.Linfo_string2: 192 .asciz "int" # string offset=12 193.Linfo_string3: 194 .asciz "f" # string offset=16 195.Linfo_string4: 196 .asciz "c1" # string offset=18 197.Linfo_string5: 198 .asciz "char" # string offset=21 199.Linfo_string6: 200 .asciz "c2" # string offset=26 201.Linfo_string7: 202 .asciz "c3" # string offset=29 203.Linfo_string8: 204 .asciz "Foo2a" # string offset=32 205.Linfo_string9: 206 .asciz "f2" # string offset=38 207.Linfo_string10: 208 .asciz "Foo3" # string offset=41 209.Linfo_string11: 210 .asciz "clang version 15.0.0" # string offset=46 211.Linfo_string12: 212 .asciz "helper.cpp" # string offset=192 213.Linfo_string13: 214 .asciz "helper.dwo" # string offset=203 215 .section .debug_str_offsets.dwo,"e",@progbits 216 .long 0 217 .long 8 218 .long 12 219 .long 16 220 .long 18 221 .long 21 222 .long 26 223 .long 29 224 .long 32 225 .long 38 226 .long 41 227 .long 46 228 .long 192 229 .long 203 230 .section .debug_info.dwo,"e",@progbits 231 .long .Ldebug_info_dwo_end2-.Ldebug_info_dwo_start2 # Length of Unit 232.Ldebug_info_dwo_start2: 233 .short 5 # DWARF version number 234 .byte 5 # DWARF Unit Type 235 .byte 8 # Address Size (in bytes) 236 .long 0 # Offset Into Abbrev. Section 237 .quad 8590827077411666803 238 .byte 6 # Abbrev [6] 0x14:0x44 DW_TAG_compile_unit 239 .byte 11 # DW_AT_producer 240 .short 33 # DW_AT_language 241 .byte 12 # DW_AT_name 242 .byte 13 # DW_AT_dwo_name 243 .byte 7 # Abbrev [7] 0x1a:0x27 DW_TAG_subprogram 244 .byte 0 # DW_AT_low_pc 245 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 246 .byte 1 # DW_AT_frame_base 247 .byte 86 248 .byte 0 # DW_AT_linkage_name 249 .byte 1 # DW_AT_name 250 .byte 0 # DW_AT_decl_file 251 .byte 11 # DW_AT_decl_line 252 .long 65 # DW_AT_type 253 # DW_AT_external 254 .byte 8 # Abbrev [8] 0x2a:0xb DW_TAG_variable 255 .byte 2 # DW_AT_location 256 .byte 145 257 .byte 104 258 .byte 3 # DW_AT_name 259 .byte 0 # DW_AT_decl_file 260 .byte 12 # DW_AT_decl_line 261 .long 69 # DW_AT_type 262 .byte 8 # Abbrev [8] 0x35:0xb DW_TAG_variable 263 .byte 2 # DW_AT_location 264 .byte 145 265 .byte 88 266 .byte 9 # DW_AT_name 267 .byte 0 # DW_AT_decl_file 268 .byte 13 # DW_AT_decl_line 269 .long 78 # DW_AT_type 270 .byte 0 # End Of Children Mark 271 .byte 5 # Abbrev [5] 0x41:0x4 DW_TAG_base_type 272 .byte 2 # DW_AT_name 273 .byte 5 # DW_AT_encoding 274 .byte 4 # DW_AT_byte_size 275 .byte 9 # Abbrev [9] 0x45:0x9 DW_TAG_structure_type 276 # DW_AT_declaration 277 .quad 1175092228111723119 # DW_AT_signature 278 .byte 9 # Abbrev [9] 0x4e:0x9 DW_TAG_structure_type 279 # DW_AT_declaration 280 .quad -5451594423976726044 # DW_AT_signature 281 .byte 0 # End Of Children Mark 282.Ldebug_info_dwo_end2: 283 .section .debug_abbrev.dwo,"e",@progbits 284 .byte 1 # Abbreviation Code 285 .byte 65 # DW_TAG_type_unit 286 .byte 1 # DW_CHILDREN_yes 287 .byte 19 # DW_AT_language 288 .byte 5 # DW_FORM_data2 289 .byte 16 # DW_AT_stmt_list 290 .byte 23 # DW_FORM_sec_offset 291 .byte 0 # EOM(1) 292 .byte 0 # EOM(2) 293 .byte 2 # Abbreviation Code 294 .byte 19 # DW_TAG_structure_type 295 .byte 1 # DW_CHILDREN_yes 296 .byte 54 # DW_AT_calling_convention 297 .byte 11 # DW_FORM_data1 298 .byte 3 # DW_AT_name 299 .byte 37 # DW_FORM_strx1 300 .byte 11 # DW_AT_byte_size 301 .byte 11 # DW_FORM_data1 302 .byte 58 # DW_AT_decl_file 303 .byte 11 # DW_FORM_data1 304 .byte 59 # DW_AT_decl_line 305 .byte 11 # DW_FORM_data1 306 .byte 0 # EOM(1) 307 .byte 0 # EOM(2) 308 .byte 3 # Abbreviation Code 309 .byte 13 # DW_TAG_member 310 .byte 0 # DW_CHILDREN_no 311 .byte 3 # DW_AT_name 312 .byte 37 # DW_FORM_strx1 313 .byte 73 # DW_AT_type 314 .byte 19 # DW_FORM_ref4 315 .byte 58 # DW_AT_decl_file 316 .byte 11 # DW_FORM_data1 317 .byte 59 # DW_AT_decl_line 318 .byte 11 # DW_FORM_data1 319 .byte 56 # DW_AT_data_member_location 320 .byte 11 # DW_FORM_data1 321 .byte 0 # EOM(1) 322 .byte 0 # EOM(2) 323 .byte 4 # Abbreviation Code 324 .byte 15 # DW_TAG_pointer_type 325 .byte 0 # DW_CHILDREN_no 326 .byte 73 # DW_AT_type 327 .byte 19 # DW_FORM_ref4 328 .byte 0 # EOM(1) 329 .byte 0 # EOM(2) 330 .byte 5 # Abbreviation Code 331 .byte 36 # DW_TAG_base_type 332 .byte 0 # DW_CHILDREN_no 333 .byte 3 # DW_AT_name 334 .byte 37 # DW_FORM_strx1 335 .byte 62 # DW_AT_encoding 336 .byte 11 # DW_FORM_data1 337 .byte 11 # DW_AT_byte_size 338 .byte 11 # DW_FORM_data1 339 .byte 0 # EOM(1) 340 .byte 0 # EOM(2) 341 .byte 6 # Abbreviation Code 342 .byte 17 # DW_TAG_compile_unit 343 .byte 1 # DW_CHILDREN_yes 344 .byte 37 # DW_AT_producer 345 .byte 37 # DW_FORM_strx1 346 .byte 19 # DW_AT_language 347 .byte 5 # DW_FORM_data2 348 .byte 3 # DW_AT_name 349 .byte 37 # DW_FORM_strx1 350 .byte 118 # DW_AT_dwo_name 351 .byte 37 # DW_FORM_strx1 352 .byte 0 # EOM(1) 353 .byte 0 # EOM(2) 354 .byte 7 # Abbreviation Code 355 .byte 46 # DW_TAG_subprogram 356 .byte 1 # DW_CHILDREN_yes 357 .byte 17 # DW_AT_low_pc 358 .byte 27 # DW_FORM_addrx 359 .byte 18 # DW_AT_high_pc 360 .byte 6 # DW_FORM_data4 361 .byte 64 # DW_AT_frame_base 362 .byte 24 # DW_FORM_exprloc 363 .byte 110 # DW_AT_linkage_name 364 .byte 37 # DW_FORM_strx1 365 .byte 3 # DW_AT_name 366 .byte 37 # DW_FORM_strx1 367 .byte 58 # DW_AT_decl_file 368 .byte 11 # DW_FORM_data1 369 .byte 59 # DW_AT_decl_line 370 .byte 11 # DW_FORM_data1 371 .byte 73 # DW_AT_type 372 .byte 19 # DW_FORM_ref4 373 .byte 63 # DW_AT_external 374 .byte 25 # DW_FORM_flag_present 375 .byte 0 # EOM(1) 376 .byte 0 # EOM(2) 377 .byte 8 # Abbreviation Code 378 .byte 52 # DW_TAG_variable 379 .byte 0 # DW_CHILDREN_no 380 .byte 2 # DW_AT_location 381 .byte 24 # DW_FORM_exprloc 382 .byte 3 # DW_AT_name 383 .byte 37 # DW_FORM_strx1 384 .byte 58 # DW_AT_decl_file 385 .byte 11 # DW_FORM_data1 386 .byte 59 # DW_AT_decl_line 387 .byte 11 # DW_FORM_data1 388 .byte 73 # DW_AT_type 389 .byte 19 # DW_FORM_ref4 390 .byte 0 # EOM(1) 391 .byte 0 # EOM(2) 392 .byte 9 # Abbreviation Code 393 .byte 19 # DW_TAG_structure_type 394 .byte 0 # DW_CHILDREN_no 395 .byte 60 # DW_AT_declaration 396 .byte 25 # DW_FORM_flag_present 397 .byte 105 # DW_AT_signature 398 .byte 32 # DW_FORM_ref_sig8 399 .byte 0 # EOM(1) 400 .byte 0 # EOM(2) 401 .byte 0 # EOM(3) 402 .section .debug_line.dwo,"e",@progbits 403.Ltmp2: 404 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length 405.Ldebug_line_start0: 406 .short 5 407 .byte 8 408 .byte 0 409 .long .Lprologue_end0-.Lprologue_start0 410.Lprologue_start0: 411 .byte 1 412 .byte 1 413 .byte 1 414 .byte -5 415 .byte 14 416 .byte 1 417 .byte 1 418 .byte 1 419 .byte 8 420 .byte 1 421 .ascii "dwarf5-types-index-split-test" 422 .byte 0 423 .byte 3 424 .byte 1 425 .byte 8 426 .byte 2 427 .byte 15 428 .byte 5 429 .byte 30 430 .byte 1 431 .ascii "helper.cpp" 432 .byte 0 433 .byte 0 434 .byte 0x65, 0x0c, 0x98, 0x4f 435 .byte 0x17, 0xca, 0x3a, 0x4e 436 .byte 0x77, 0x85, 0xe3, 0x0e 437 .byte 0x6c, 0xa8, 0xf1, 0x30 438.Lprologue_end0: 439.Ldebug_line_end0: 440 .section .debug_addr,"",@progbits 441 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 442.Ldebug_addr_start0: 443 .short 5 # DWARF version number 444 .byte 8 # Address size 445 .byte 0 # Segment selector size 446.Laddr_table_base0: 447 .quad .Lfunc_begin0 448.Ldebug_addr_end0: 449 .section .debug_gnu_pubnames,"",@progbits 450 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info 451.LpubNames_start0: 452 .short 2 # DWARF Version 453 .long .Lcu_begin0 # Offset of Compilation Unit Info 454 .long 40 # Compilation Unit Length 455 .long 26 # DIE offset 456 .byte 48 # Attributes: FUNCTION, EXTERNAL 457 .asciz "foo" # External Name 458 .long 0 # End Mark 459.LpubNames_end0: 460 .section .debug_gnu_pubtypes,"",@progbits 461 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info 462.LpubTypes_start0: 463 .short 2 # DWARF Version 464 .long .Lcu_begin0 # Offset of Compilation Unit Info 465 .long 40 # Compilation Unit Length 466 .long 69 # DIE offset 467 .byte 16 # Attributes: TYPE, EXTERNAL 468 .asciz "Foo2a" # External Name 469 .long 65 # DIE offset 470 .byte 144 # Attributes: TYPE, STATIC 471 .asciz "int" # External Name 472 .long 20 # DIE offset 473 .byte 16 # Attributes: TYPE, EXTERNAL 474 .asciz "char" # External Name 475 .long 78 # DIE offset 476 .byte 16 # Attributes: TYPE, EXTERNAL 477 .asciz "Foo3" # External Name 478 .long 0 # End Mark 479.LpubTypes_end0: 480 .ident "clang version 15.0.0" 481 .section ".note.GNU-stack","",@progbits 482 .addrsig 483 .section .debug_line,"",@progbits 484.Lline_table_start0: 485