| ... | ... | @@ -1373,13 +1373,16 @@ fn addDbgInfoType( |
| 1373 | 1373 | }, |
| 1374 | 1374 | .Pointer => { |
| 1375 | 1375 | if (ty.isSlice()) { |
| 1376 | | // Slices are anonymous structs: struct { .ptr = *, .len = N } |
| 1377 | | try dbg_info_buffer.ensureUnusedCapacity(23); |
| 1376 | // Slices are structs: struct { .ptr = *, .len = N } |
| 1378 | 1377 | // DW.AT.structure_type |
| 1379 | | dbg_info_buffer.appendAssumeCapacity(abbrev_anon_struct_type); |
| 1378 | try dbg_info_buffer.ensureUnusedCapacity(2); |
| 1379 | dbg_info_buffer.appendAssumeCapacity(abbrev_struct_type); |
| 1380 | 1380 | // DW.AT.byte_size, DW.FORM.sdata |
| 1381 | | dbg_info_buffer.appendAssumeCapacity(16); |
| 1381 | dbg_info_buffer.appendAssumeCapacity(@sizeOf(usize) * 2); |
| 1382 | // DW.AT.name, DW.FORM.string |
| 1383 | try dbg_info_buffer.writer().print("{}\x00", .{ty}); |
| 1382 | 1384 | // DW.AT.member |
| 1385 | try dbg_info_buffer.ensureUnusedCapacity(5); |
| 1383 | 1386 | dbg_info_buffer.appendAssumeCapacity(abbrev_struct_member); |
| 1384 | 1387 | // DW.AT.name, DW.FORM.string |
| 1385 | 1388 | dbg_info_buffer.appendSliceAssumeCapacity("ptr"); |
| ... | ... | @@ -1391,6 +1394,7 @@ fn addDbgInfoType( |
| 1391 | 1394 | const ptr_ty = ty.slicePtrFieldType(buf); |
| 1392 | 1395 | try relocs.append(.{ .ty = ptr_ty, .reloc = @intCast(u32, index) }); |
| 1393 | 1396 | // DW.AT.data_member_location, DW.FORM.sdata |
| 1397 | try dbg_info_buffer.ensureUnusedCapacity(6); |
| 1394 | 1398 | dbg_info_buffer.appendAssumeCapacity(0); |
| 1395 | 1399 | // DW.AT.member |
| 1396 | 1400 | dbg_info_buffer.appendAssumeCapacity(abbrev_struct_member); |
| ... | ... | @@ -1402,7 +1406,8 @@ fn addDbgInfoType( |
| 1402 | 1406 | try dbg_info_buffer.resize(index + 4); |
| 1403 | 1407 | try relocs.append(.{ .ty = Type.initTag(.usize), .reloc = @intCast(u32, index) }); |
| 1404 | 1408 | // DW.AT.data_member_location, DW.FORM.sdata |
| 1405 | | dbg_info_buffer.appendAssumeCapacity(8); |
| 1409 | try dbg_info_buffer.ensureUnusedCapacity(2); |
| 1410 | dbg_info_buffer.appendAssumeCapacity(@sizeOf(usize)); |
| 1406 | 1411 | // DW.AT.structure_type delimit children |
| 1407 | 1412 | dbg_info_buffer.appendAssumeCapacity(0); |
| 1408 | 1413 | } else { |