diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 0293a03db..c53eb0653 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -890,11 +890,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_unwrapped_kind)) - { - new_tree = e_irtree_trunc(arena, in_tree, cast_type); - } - if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) + else if(cast_type_byte_size < casted_type_byte_size && ( + e_type_kind_is_integer(cast_type_unwrapped_kind) || + ( e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) + )) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } @@ -1518,11 +1517,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_unwrapped_kind)) - { - new_tree = e_irtree_trunc(arena, in_tree, cast_type); - } - if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) + else if(cast_type_byte_size < casted_type_byte_size && ( + e_type_kind_is_integer(cast_type_unwrapped_kind) || + ( e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) + )) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); }