From db613d38f07da20385709b8250d1a3e83b96337d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 25 Aug 2017 20:05:10 -0400 Subject: implement comptime bitcasting from array --- src/ir.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index f88612a049..c39950081f 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -14364,7 +14364,16 @@ static void buf_write_value_bytes(CodeGen *codegen, uint8_t *buf, ConstExprValue zig_unreachable(); } case TypeTableEntryIdArray: - zig_panic("TODO buf_write_value_bytes array type"); + { + size_t buf_i = 0; + expand_undef_array(codegen, val); + for (size_t elem_i = 0; elem_i < val->type->data.array.len; elem_i += 1) { + ConstExprValue *elem = &val->data.x_array.s_none.elements[elem_i]; + buf_write_value_bytes(codegen, &buf[buf_i], elem); + buf_i += type_size(codegen, elem->type); + } + } + return; case TypeTableEntryIdStruct: zig_panic("TODO buf_write_value_bytes struct type"); case TypeTableEntryIdMaybe: -- cgit v1.2.3