authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-05-10 20:34:18-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-05-10 20:34:18-07:00
log9e72f317354de029f7e77600901c8cabcaf48c3e
tree024ada96335d51c32e32a7a1e21b7eb3bd53b0a2
parent6361d7a92824ff2b883625d133fec4fccfb3eef7

stage1: ignore enum ContainerLayout for comptime memory purposes

See #2115. The concept of `packed enum` and `extern enum` is getting removed from the language.

1 files changed, 7 insertions(+), 16 deletions(-)

src/stage1/ir.cpp+7-16
......@@ -30550,22 +30550,13 @@ static Error buf_read_value_bytes(IrAnalyze *ira, CodeGen *codegen, AstNode *sou
3055030550 case ZigTypeIdVector:
3055130551 return buf_read_value_bytes_array(ira, codegen, source_node, buf, val, val->type->data.vector.elem_type,
3055230552 val->type->data.vector.len);
30553 case ZigTypeIdEnum:
30554 switch (val->type->data.enumeration.layout) {
30555 case ContainerLayoutAuto:
30556 zig_panic("TODO buf_read_value_bytes enum auto");
30557 case ContainerLayoutPacked:
30558 zig_panic("TODO buf_read_value_bytes enum packed");
30559 case ContainerLayoutExtern: {
30560 ZigType *tag_int_type = val->type->data.enumeration.tag_int_type;
30561 src_assert(tag_int_type->id == ZigTypeIdInt, source_node);
30562 bigint_read_twos_complement(&val->data.x_enum_tag, buf, tag_int_type->data.integral.bit_count,
30563 codegen->is_big_endian, tag_int_type->data.integral.is_signed);
30564 return ErrorNone;
30565 }
30566 }
30567 zig_unreachable();
30568 case ZigTypeIdStruct:
30553 case ZigTypeIdEnum: {
30554 ZigType *tag_int_type = val->type->data.enumeration.tag_int_type;
30555 src_assert(tag_int_type->id == ZigTypeIdInt, source_node);
30556 bigint_read_twos_complement(&val->data.x_enum_tag, buf, tag_int_type->data.integral.bit_count,
30557 codegen->is_big_endian, tag_int_type->data.integral.is_signed);
30558 return ErrorNone;
30559 } case ZigTypeIdStruct:
3056930560 switch (val->type->data.structure.layout) {
3057030561 case ContainerLayoutAuto: {
3057130562 switch(val->type->data.structure.special){