Skip to content

Commit 322e444

Browse files
committed
Fix conversion of signed 1-bit BV to FP
Fixes AliveToolkit/alive2#1193
1 parent 792ffee commit 322e444

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/ast/fpa/fpa2bv_converter.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3051,7 +3051,7 @@ void fpa2bv_converter::mk_to_fp_signed(func_decl * f, unsigned num, expr * const
30513051
expr_ref sign_bit(m), exp_too_large(m), sig_4(m), exp_2(m), rest(m);
30523052
expr_ref is_neg(m), x_abs(m), neg_x(m);
30533053
sign_bit = m_bv_util.mk_extract(bv_sz - 1, bv_sz - 1, x);
3054-
rest = m_bv_util.mk_extract(bv_sz - 2, 0, x);
3054+
rest = m_bv_util.mk_extract(bv_sz == 1 ? 0 : (bv_sz - 2), 0, x);
30553055
dbg_decouple("fpa2bv_to_fp_signed_rest", rest);
30563056
is_neg = m.mk_eq(sign_bit, bv1_1);
30573057
neg_x = m_bv_util.mk_bv_neg(x); // overflow ok, x_abs is now unsigned.

0 commit comments

Comments
 (0)