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 17 .text 18 .file "helper.cpp" 19 .globl _Z3foov # -- Begin function _Z3foov 20 .p2align 4, 0x90 21 .type _Z3foov,@function 22_Z3foov: # @_Z3foov 23.Lfunc_begin0: 24 .file 0 "/dwarf4-types-dwarf5-types-test" "helper.cpp" md5 0x650c984f17ca3a4e7785e30e6ca8f130 25 .loc 0 11 0 # helper.cpp:11:0 26 .cfi_startproc 27# %bb.0: 28 pushq %rbp 29 .cfi_def_cfa_offset 16 30 .cfi_offset %rbp, -16 31 movq %rsp, %rbp 32 .cfi_def_cfa_register %rbp 33.Ltmp0: 34 .loc 0 14 3 prologue_end # helper.cpp:14:3 35 xorl %eax, %eax 36 .loc 0 14 3 epilogue_begin is_stmt 0 # helper.cpp:14:3 37 popq %rbp 38 .cfi_def_cfa %rsp, 8 39 retq 40.Ltmp1: 41.Lfunc_end0: 42 .size _Z3foov, .Lfunc_end0-_Z3foov 43 .cfi_endproc 44 # -- End function 45 .section .debug_info,"G",@progbits,1175092228111723119,comdat 46 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 47.Ldebug_info_start0: 48 .short 5 # DWARF version number 49 .byte 2 # DWARF Unit Type 50 .byte 8 # Address Size (in bytes) 51 .long .debug_abbrev # Offset Into Abbrev. Section 52 .quad 1175092228111723119 # Type Signature 53 .long 35 # Type DIE Offset 54 .byte 1 # Abbrev [1] 0x18:0x37 DW_TAG_type_unit 55 .short 33 # DW_AT_language 56 .long .Lline_table_start0 # DW_AT_stmt_list 57 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 58 .byte 2 # Abbrev [2] 0x23:0x22 DW_TAG_structure_type 59 .byte 5 # DW_AT_calling_convention 60 .byte 11 # DW_AT_name 61 .byte 24 # DW_AT_byte_size 62 .byte 0 # DW_AT_decl_file 63 .byte 1 # DW_AT_decl_line 64 .byte 3 # Abbrev [3] 0x29:0x9 DW_TAG_member 65 .byte 7 # DW_AT_name 66 .long 69 # DW_AT_type 67 .byte 0 # DW_AT_decl_file 68 .byte 2 # DW_AT_decl_line 69 .byte 0 # DW_AT_data_member_location 70 .byte 3 # Abbrev [3] 0x32:0x9 DW_TAG_member 71 .byte 9 # DW_AT_name 72 .long 69 # DW_AT_type 73 .byte 0 # DW_AT_decl_file 74 .byte 3 # DW_AT_decl_line 75 .byte 8 # DW_AT_data_member_location 76 .byte 3 # Abbrev [3] 0x3b:0x9 DW_TAG_member 77 .byte 10 # DW_AT_name 78 .long 69 # DW_AT_type 79 .byte 0 # DW_AT_decl_file 80 .byte 4 # DW_AT_decl_line 81 .byte 16 # DW_AT_data_member_location 82 .byte 0 # End Of Children Mark 83 .byte 4 # Abbrev [4] 0x45:0x5 DW_TAG_pointer_type 84 .long 74 # DW_AT_type 85 .byte 5 # Abbrev [5] 0x4a:0x4 DW_TAG_base_type 86 .byte 8 # DW_AT_name 87 .byte 6 # DW_AT_encoding 88 .byte 1 # DW_AT_byte_size 89 .byte 0 # End Of Children Mark 90.Ldebug_info_end0: 91 .section .debug_info,"G",@progbits,12995149649732825572,comdat 92 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit 93.Ldebug_info_start1: 94 .short 5 # DWARF version number 95 .byte 2 # DWARF Unit Type 96 .byte 8 # Address Size (in bytes) 97 .long .debug_abbrev # Offset Into Abbrev. Section 98 .quad -5451594423976726044 # Type Signature 99 .long 35 # Type DIE Offset 100 .byte 1 # Abbrev [1] 0x18:0x2e DW_TAG_type_unit 101 .short 33 # DW_AT_language 102 .long .Lline_table_start0 # DW_AT_stmt_list 103 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 104 .byte 2 # Abbrev [2] 0x23:0x19 DW_TAG_structure_type 105 .byte 5 # DW_AT_calling_convention 106 .byte 13 # DW_AT_name 107 .byte 16 # DW_AT_byte_size 108 .byte 0 # DW_AT_decl_file 109 .byte 6 # DW_AT_decl_line 110 .byte 3 # Abbrev [3] 0x29:0x9 DW_TAG_member 111 .byte 7 # DW_AT_name 112 .long 60 # DW_AT_type 113 .byte 0 # DW_AT_decl_file 114 .byte 7 # DW_AT_decl_line 115 .byte 0 # DW_AT_data_member_location 116 .byte 3 # Abbrev [3] 0x32:0x9 DW_TAG_member 117 .byte 9 # DW_AT_name 118 .long 60 # DW_AT_type 119 .byte 0 # DW_AT_decl_file 120 .byte 8 # DW_AT_decl_line 121 .byte 8 # DW_AT_data_member_location 122 .byte 0 # End Of Children Mark 123 .byte 4 # Abbrev [4] 0x3c:0x5 DW_TAG_pointer_type 124 .long 65 # DW_AT_type 125 .byte 5 # Abbrev [5] 0x41:0x4 DW_TAG_base_type 126 .byte 8 # DW_AT_name 127 .byte 6 # DW_AT_encoding 128 .byte 1 # DW_AT_byte_size 129 .byte 0 # End Of Children Mark 130.Ldebug_info_end1: 131 .section .debug_abbrev,"",@progbits 132 .byte 1 # Abbreviation Code 133 .byte 65 # DW_TAG_type_unit 134 .byte 1 # DW_CHILDREN_yes 135 .byte 19 # DW_AT_language 136 .byte 5 # DW_FORM_data2 137 .byte 16 # DW_AT_stmt_list 138 .byte 23 # DW_FORM_sec_offset 139 .byte 114 # DW_AT_str_offsets_base 140 .byte 23 # DW_FORM_sec_offset 141 .byte 0 # EOM(1) 142 .byte 0 # EOM(2) 143 .byte 2 # Abbreviation Code 144 .byte 19 # DW_TAG_structure_type 145 .byte 1 # DW_CHILDREN_yes 146 .byte 54 # DW_AT_calling_convention 147 .byte 11 # DW_FORM_data1 148 .byte 3 # DW_AT_name 149 .byte 37 # DW_FORM_strx1 150 .byte 11 # DW_AT_byte_size 151 .byte 11 # DW_FORM_data1 152 .byte 58 # DW_AT_decl_file 153 .byte 11 # DW_FORM_data1 154 .byte 59 # DW_AT_decl_line 155 .byte 11 # DW_FORM_data1 156 .byte 0 # EOM(1) 157 .byte 0 # EOM(2) 158 .byte 3 # Abbreviation Code 159 .byte 13 # DW_TAG_member 160 .byte 0 # DW_CHILDREN_no 161 .byte 3 # DW_AT_name 162 .byte 37 # DW_FORM_strx1 163 .byte 73 # DW_AT_type 164 .byte 19 # DW_FORM_ref4 165 .byte 58 # DW_AT_decl_file 166 .byte 11 # DW_FORM_data1 167 .byte 59 # DW_AT_decl_line 168 .byte 11 # DW_FORM_data1 169 .byte 56 # DW_AT_data_member_location 170 .byte 11 # DW_FORM_data1 171 .byte 0 # EOM(1) 172 .byte 0 # EOM(2) 173 .byte 4 # Abbreviation Code 174 .byte 15 # DW_TAG_pointer_type 175 .byte 0 # DW_CHILDREN_no 176 .byte 73 # DW_AT_type 177 .byte 19 # DW_FORM_ref4 178 .byte 0 # EOM(1) 179 .byte 0 # EOM(2) 180 .byte 5 # Abbreviation Code 181 .byte 36 # DW_TAG_base_type 182 .byte 0 # DW_CHILDREN_no 183 .byte 3 # DW_AT_name 184 .byte 37 # DW_FORM_strx1 185 .byte 62 # DW_AT_encoding 186 .byte 11 # DW_FORM_data1 187 .byte 11 # DW_AT_byte_size 188 .byte 11 # DW_FORM_data1 189 .byte 0 # EOM(1) 190 .byte 0 # EOM(2) 191 .byte 6 # Abbreviation Code 192 .byte 17 # DW_TAG_compile_unit 193 .byte 1 # DW_CHILDREN_yes 194 .byte 37 # DW_AT_producer 195 .byte 37 # DW_FORM_strx1 196 .byte 19 # DW_AT_language 197 .byte 5 # DW_FORM_data2 198 .byte 3 # DW_AT_name 199 .byte 37 # DW_FORM_strx1 200 .byte 114 # DW_AT_str_offsets_base 201 .byte 23 # DW_FORM_sec_offset 202 .byte 16 # DW_AT_stmt_list 203 .byte 23 # DW_FORM_sec_offset 204 .byte 27 # DW_AT_comp_dir 205 .byte 37 # DW_FORM_strx1 206 .byte 17 # DW_AT_low_pc 207 .byte 27 # DW_FORM_addrx 208 .byte 18 # DW_AT_high_pc 209 .byte 6 # DW_FORM_data4 210 .byte 115 # DW_AT_addr_base 211 .byte 23 # DW_FORM_sec_offset 212 .byte 0 # EOM(1) 213 .byte 0 # EOM(2) 214 .byte 7 # Abbreviation Code 215 .byte 46 # DW_TAG_subprogram 216 .byte 1 # DW_CHILDREN_yes 217 .byte 17 # DW_AT_low_pc 218 .byte 27 # DW_FORM_addrx 219 .byte 18 # DW_AT_high_pc 220 .byte 6 # DW_FORM_data4 221 .byte 64 # DW_AT_frame_base 222 .byte 24 # DW_FORM_exprloc 223 .byte 110 # DW_AT_linkage_name 224 .byte 37 # DW_FORM_strx1 225 .byte 3 # DW_AT_name 226 .byte 37 # DW_FORM_strx1 227 .byte 58 # DW_AT_decl_file 228 .byte 11 # DW_FORM_data1 229 .byte 59 # DW_AT_decl_line 230 .byte 11 # DW_FORM_data1 231 .byte 73 # DW_AT_type 232 .byte 19 # DW_FORM_ref4 233 .byte 63 # DW_AT_external 234 .byte 25 # DW_FORM_flag_present 235 .byte 0 # EOM(1) 236 .byte 0 # EOM(2) 237 .byte 8 # Abbreviation Code 238 .byte 52 # DW_TAG_variable 239 .byte 0 # DW_CHILDREN_no 240 .byte 2 # DW_AT_location 241 .byte 24 # DW_FORM_exprloc 242 .byte 3 # DW_AT_name 243 .byte 37 # DW_FORM_strx1 244 .byte 58 # DW_AT_decl_file 245 .byte 11 # DW_FORM_data1 246 .byte 59 # DW_AT_decl_line 247 .byte 11 # DW_FORM_data1 248 .byte 73 # DW_AT_type 249 .byte 19 # DW_FORM_ref4 250 .byte 0 # EOM(1) 251 .byte 0 # EOM(2) 252 .byte 9 # Abbreviation Code 253 .byte 19 # DW_TAG_structure_type 254 .byte 0 # DW_CHILDREN_no 255 .byte 60 # DW_AT_declaration 256 .byte 25 # DW_FORM_flag_present 257 .byte 105 # DW_AT_signature 258 .byte 32 # DW_FORM_ref_sig8 259 .byte 0 # EOM(1) 260 .byte 0 # EOM(2) 261 .byte 0 # EOM(3) 262 .section .debug_info,"",@progbits 263.Lcu_begin0: 264 .long .Ldebug_info_end2-.Ldebug_info_start2 # Length of Unit 265.Ldebug_info_start2: 266 .short 5 # DWARF version number 267 .byte 1 # DWARF Unit Type 268 .byte 8 # Address Size (in bytes) 269 .long .debug_abbrev # Offset Into Abbrev. Section 270 .byte 6 # Abbrev [6] 0xc:0x55 DW_TAG_compile_unit 271 .byte 0 # DW_AT_producer 272 .short 33 # DW_AT_language 273 .byte 1 # DW_AT_name 274 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 275 .long .Lline_table_start0 # DW_AT_stmt_list 276 .byte 2 # DW_AT_comp_dir 277 .byte 0 # DW_AT_low_pc 278 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 279 .long .Laddr_table_base0 # DW_AT_addr_base 280 .byte 7 # Abbrev [7] 0x23:0x27 DW_TAG_subprogram 281 .byte 0 # DW_AT_low_pc 282 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 283 .byte 1 # DW_AT_frame_base 284 .byte 86 285 .byte 3 # DW_AT_linkage_name 286 .byte 4 # DW_AT_name 287 .byte 0 # DW_AT_decl_file 288 .byte 11 # DW_AT_decl_line 289 .long 74 # DW_AT_type 290 # DW_AT_external 291 .byte 8 # Abbrev [8] 0x33:0xb DW_TAG_variable 292 .byte 2 # DW_AT_location 293 .byte 145 294 .byte 104 295 .byte 6 # DW_AT_name 296 .byte 0 # DW_AT_decl_file 297 .byte 12 # DW_AT_decl_line 298 .long 78 # DW_AT_type 299 .byte 8 # Abbrev [8] 0x3e:0xb DW_TAG_variable 300 .byte 2 # DW_AT_location 301 .byte 145 302 .byte 88 303 .byte 12 # DW_AT_name 304 .byte 0 # DW_AT_decl_file 305 .byte 13 # DW_AT_decl_line 306 .long 87 # DW_AT_type 307 .byte 0 # End Of Children Mark 308 .byte 5 # Abbrev [5] 0x4a:0x4 DW_TAG_base_type 309 .byte 5 # DW_AT_name 310 .byte 5 # DW_AT_encoding 311 .byte 4 # DW_AT_byte_size 312 .byte 9 # Abbrev [9] 0x4e:0x9 DW_TAG_structure_type 313 # DW_AT_declaration 314 .quad 1175092228111723119 # DW_AT_signature 315 .byte 9 # Abbrev [9] 0x57:0x9 DW_TAG_structure_type 316 # DW_AT_declaration 317 .quad -5451594423976726044 # DW_AT_signature 318 .byte 0 # End Of Children Mark 319.Ldebug_info_end2: 320 .section .debug_str_offsets,"",@progbits 321 .long 60 # Length of String Offsets Set 322 .short 5 323 .short 0 324.Lstr_offsets_base0: 325 .section .debug_str,"MS",@progbits,1 326.Linfo_string0: 327 .asciz "clang version 15.0.0" # string offset=0 328.Linfo_string1: 329 .asciz "helper.cpp" # string offset=146 330.Linfo_string2: 331 .asciz "/dwarf4-types-dwarf5-types-test" # string offset=157 332.Linfo_string3: 333 .asciz "_Z3foov" # string offset=226 334.Linfo_string4: 335 .asciz "foo" # string offset=234 336.Linfo_string5: 337 .asciz "int" # string offset=238 338.Linfo_string6: 339 .asciz "f" # string offset=242 340.Linfo_string7: 341 .asciz "c1" # string offset=244 342.Linfo_string8: 343 .asciz "char" # string offset=247 344.Linfo_string9: 345 .asciz "c2" # string offset=252 346.Linfo_string10: 347 .asciz "c3" # string offset=255 348.Linfo_string11: 349 .asciz "Foo2a" # string offset=258 350.Linfo_string12: 351 .asciz "f2" # string offset=264 352.Linfo_string13: 353 .asciz "Foo3" # string offset=267 354 .section .debug_str_offsets,"",@progbits 355 .long .Linfo_string0 356 .long .Linfo_string1 357 .long .Linfo_string2 358 .long .Linfo_string3 359 .long .Linfo_string4 360 .long .Linfo_string5 361 .long .Linfo_string6 362 .long .Linfo_string7 363 .long .Linfo_string8 364 .long .Linfo_string9 365 .long .Linfo_string10 366 .long .Linfo_string11 367 .long .Linfo_string12 368 .long .Linfo_string13 369 .section .debug_addr,"",@progbits 370 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 371.Ldebug_addr_start0: 372 .short 5 # DWARF version number 373 .byte 8 # Address size 374 .byte 0 # Segment selector size 375.Laddr_table_base0: 376 .quad .Lfunc_begin0 377.Ldebug_addr_end0: 378 .ident "clang version 15.0.0" 379 .section ".note.GNU-stack","",@progbits 380 .addrsig 381 .section .debug_line,"",@progbits 382.Lline_table_start0: 383