Преглед изворни кода

Add unit tagging to CustomLayoutId (#6271)

David Blaikie пре 6 месеци
родитељ
комит
33166ffc7a

+ 2 - 2
toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon

@@ -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
toolchain/sem_ir/file.cpp

@@ -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.