@@ -1119,11 +1119,11 @@ namespace z3 {
1119
1119
friend expr max (expr const & a, expr const & b);
1120
1120
1121
1121
friend expr bv2int (expr const & a, bool is_signed);
1122
- friend expr int2bv (expr const & a, unsigned n );
1123
- friend expr bvadd_no_overflow (expr const & a, expr const & b);
1122
+ friend expr int2bv (unsigned n, expr const & a);
1123
+ friend expr bvadd_no_overflow (expr const & a, expr const & b, bool is_signed );
1124
1124
friend expr bvadd_no_underflow (expr const & a, expr const & b);
1125
1125
friend expr bvsub_no_overflow (expr const & a, expr const & b);
1126
- friend expr bvsub_no_underflow (expr const & a, expr const & b);
1126
+ friend expr bvsub_no_underflow (expr const & a, expr const & b, bool is_signed );
1127
1127
friend expr bvsdiv_no_overflow (expr const & a, expr const & b);
1128
1128
friend expr bvneg_no_overflow (expr const & a);
1129
1129
friend expr bvmul_no_overflow (expr const & a, expr const & b, bool is_signed);
@@ -1756,22 +1756,22 @@ namespace z3 {
1756
1756
\brief bit-vector and integer conversions.
1757
1757
*/
1758
1758
inline expr bv2int (expr const & a, bool is_signed) { Z3_ast r = Z3_mk_bv2int (a.ctx (), a, is_signed); a.check_error (); return expr (a.ctx (), r); }
1759
- inline expr int2bv (expr const & a, unsigned n ) { Z3_ast r = Z3_mk_intbv2 (a.ctx (), a, n ); a.check_error (); return expr (a.ctx (), r); }
1759
+ inline expr int2bv (unsigned n, expr const & a) { Z3_ast r = Z3_mk_int2bv (a.ctx (), n, a ); a.check_error (); return expr (a.ctx (), r); }
1760
1760
1761
1761
/* *
1762
1762
\brief bit-vector overflow/underflow checks
1763
1763
*/
1764
- inline expr bvadd_no_overflow (expr const & a, expr const & b) {
1765
- check_context (a, b); Z3_ast r = Z3_mk_bvadd_no_overflow (a.ctx (), a, b); a.check_error (); return expr (a.ctx (), r);
1764
+ inline expr bvadd_no_overflow (expr const & a, expr const & b, bool is_signed ) {
1765
+ check_context (a, b); Z3_ast r = Z3_mk_bvadd_no_overflow (a.ctx (), a, b, is_signed ); a.check_error (); return expr (a.ctx (), r);
1766
1766
}
1767
1767
inline expr bvadd_no_underflow (expr const & a, expr const & b) {
1768
1768
check_context (a, b); Z3_ast r = Z3_mk_bvadd_no_underflow (a.ctx (), a, b); a.check_error (); return expr (a.ctx (), r);
1769
1769
}
1770
1770
inline expr bvsub_no_overflow (expr const & a, expr const & b) {
1771
1771
check_context (a, b); Z3_ast r = Z3_mk_bvsub_no_overflow (a.ctx (), a, b); a.check_error (); return expr (a.ctx (), r);
1772
1772
}
1773
- inline expr bvsub_no_underflow (expr const & a, expr const & b) {
1774
- check_context (a, b); Z3_ast r = Z3_mk_bvsub_no_underflow (a.ctx (), a, b); a.check_error (); return expr (a.ctx (), r);
1773
+ inline expr bvsub_no_underflow (expr const & a, expr const & b, bool is_signed ) {
1774
+ check_context (a, b); Z3_ast r = Z3_mk_bvsub_no_underflow (a.ctx (), a, b, is_signed ); a.check_error (); return expr (a.ctx (), r);
1775
1775
}
1776
1776
inline expr bvsdiv_no_overflow (expr const & a, expr const & b) {
1777
1777
check_context (a, b); Z3_ast r = Z3_mk_bvsdiv_no_overflow (a.ctx (), a, b); a.check_error (); return expr (a.ctx (), r);
0 commit comments