From 27ed10746db72fd3e5ba9aea922cb064aa3f8995 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 11 Sep 2024 23:08:38 +0100 Subject: Allow `transmute(Bit_Set)~T(0)` --- src/check_expr.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 45c3e9a3c..760551a72 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -3612,7 +3612,8 @@ gb_internal bool check_transmute(CheckerContext *c, Ast *node, Operand *o, Type if (are_types_identical(src_bt, dst_bt)) { return true; } - if (is_type_integer(src_t) && is_type_integer(dst_t)) { + if ((is_type_integer(src_t) && is_type_integer(dst_t)) || + is_type_integer(src_t) && is_type_bit_set(dst_t)) { if (types_have_same_internal_endian(src_t, dst_t)) { ExactValue src_v = exact_value_to_integer(o->value); GB_ASSERT(src_v.kind == ExactValue_Integer || src_v.kind == ExactValue_Invalid); -- cgit v1.2.3