authorgravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2021-12-18 05:39:13+01:00
committergravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2021-12-21 01:41:51+01:00
log2f7e98c129ca3c86fe20c043078bcc7f2fe477d6
tree2097df88468ed13d565a7787299be50c8d48df34
parentf3d635b6683ba4a53f82ae8087b1cf78552abac5

stage2: also write addrspace to pointer typeinfo


1 files changed, 6 insertions(+), 4 deletions(-)

src/Sema.zig+6-4
...@@ -8881,7 +8881,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -8881,7 +8881,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
8881 },8881 },
8882 .Pointer => {8882 .Pointer => {
8883 const info = ty.ptrInfo().data;8883 const info = ty.ptrInfo().data;
8884 const field_values = try sema.arena.alloc(Value, 7);8884 const field_values = try sema.arena.alloc(Value, 8);
8885 // size: Size,8885 // size: Size,
8886 field_values[0] = try Value.Tag.enum_field_index.create(sema.arena, @enumToInt(info.size));8886 field_values[0] = try Value.Tag.enum_field_index.create(sema.arena, @enumToInt(info.size));
8887 // is_const: bool,8887 // is_const: bool,
...@@ -8890,12 +8890,14 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -8890,12 +8890,14 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
8890 field_values[2] = if (info.@"volatile") Value.initTag(.bool_true) else Value.initTag(.bool_false);8890 field_values[2] = if (info.@"volatile") Value.initTag(.bool_true) else Value.initTag(.bool_false);
8891 // alignment: comptime_int,8891 // alignment: comptime_int,
8892 field_values[3] = try Value.Tag.int_u64.create(sema.arena, info.@"align");8892 field_values[3] = try Value.Tag.int_u64.create(sema.arena, info.@"align");
8893 // address_space: AddressSpace
8894 field_values[4] = try Value.Tag.enum_field_index.create(sema.arena, @enumToInt(info.@"addrspace"));
8893 // child: type,8895 // child: type,
8894 field_values[4] = try Value.Tag.ty.create(sema.arena, info.pointee_type);8896 field_values[5] = try Value.Tag.ty.create(sema.arena, info.pointee_type);
8895 // is_allowzero: bool,8897 // is_allowzero: bool,
8896 field_values[5] = if (info.@"allowzero") Value.initTag(.bool_true) else Value.initTag(.bool_false);8898 field_values[6] = if (info.@"allowzero") Value.initTag(.bool_true) else Value.initTag(.bool_false);
8897 // sentinel: anytype,8899 // sentinel: anytype,
8898 field_values[6] = if (info.sentinel) |some| try Value.Tag.opt_payload.create(sema.arena, some) else Value.@"null";8900 field_values[7] = if (info.sentinel) |some| try Value.Tag.opt_payload.create(sema.arena, some) else Value.@"null";
88998901
8900 return sema.addConstant(8902 return sema.addConstant(
8901 type_info_ty,8903 type_info_ty,