Add unit tagging to CustomLayoutId (#6271)

This commit is contained in:
David Blaikie
2025-10-27 23:11:23 +00:00
committed by GitHub
parent a1a35c207e
commit 33166ffc7a
2 changed files with 5 additions and 3 deletions
@@ -144,8 +144,8 @@ fn G(x: Cpp.X) {
// CHECK:STDOUT: inst6000001F: {kind: PointerType, arg0: inst60000013, type: type(TypeType)}
// CHECK:STDOUT: inst60000020: {kind: UnboundElementType, arg0: inst60000013, arg1: inst6000001F, type: type(TypeType)}
// CHECK:STDOUT: inst60000021: {kind: FieldDecl, arg0: name00000006, arg1: element0, type: type(inst60000020)}
// CHECK:STDOUT: inst60000022: {kind: CustomLayoutType, arg0: struct_type_fields60000001, arg1: custom_layout00000001, type: type(TypeType)}
// CHECK:STDOUT: inst60000023: {kind: CustomLayoutType, arg0: struct_type_fields60000002, arg1: custom_layout00000001, type: type(TypeType)}
// CHECK:STDOUT: inst60000022: {kind: CustomLayoutType, arg0: struct_type_fields60000001, arg1: custom_layout60000001, type: type(TypeType)}
// CHECK:STDOUT: inst60000023: {kind: CustomLayoutType, arg0: struct_type_fields60000002, arg1: custom_layout60000001, type: type(TypeType)}
// CHECK:STDOUT: inst60000024: {kind: CompleteTypeWitness, arg0: inst60000022, type: type(inst(WitnessType))}
// CHECK:STDOUT: inst60000025: {kind: CompleteTypeWitness, arg0: inst60000023, type: type(inst(WitnessType))}
// CHECK:STDOUT: inst60000026: {kind: PointerType, arg0: inst60000023, type: type(TypeType)}
+3 -1
View File
@@ -60,8 +60,10 @@ File::File(const Parse::Tree* parse_tree, CheckIRId check_ir_id,
constant_values_(ConstantId::NotConstant, &insts_),
inst_blocks_(allocator_, check_ir_id),
constants_(this),
// 1 reserved id for `StructTypeFields::Empty`.
// 1 reserved id for `StructTypeFieldsId::Empty`.
struct_type_fields_(allocator_, IdTag(check_ir_id.index, 1)),
// 1 reserved id for `CustomLayoutId::Empty`.
custom_layouts_(allocator_, IdTag(check_ir_id.index, 1)),
expr_regions_(check_ir_id),
clang_source_locs_(check_ir_id) {
// `type` and the error type are both complete & concrete types.