Skip to content

Commit 1c1fb76

Browse files
authored
Merge pull request #6132 from diffblue/smt2_solver_FPA
Use FloatingPoint theory when using --cprover-smt2
2 parents fd65126 + cd9dff8 commit 1c1fb76

File tree

13 files changed

+163
-44
lines changed

13 files changed

+163
-44
lines changed

regression/cbmc/Float-div2/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE broken-z3-smt-backend
22
main.c
33
--floatbv
44
^EXIT=0$

regression/cbmc/Float-no-simp6/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33
--floatbv --no-simplify
44
^EXIT=0$

regression/cbmc/Float-no-simp7/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33
--floatbv --no-simplify
44
^EXIT=0$

regression/cbmc/Float20/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33
--floatbv
44
^EXIT=0$

regression/cbmc/Float23/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33

44
^EXIT=0$

regression/cbmc/Float3/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE broken-z3-smt-backend
22
main.c
33
--floatbv
44
^EXIT=0$

regression/cbmc/Float5/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33
--floatbv
44
^EXIT=0$

regression/cbmc/Float6/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33
--floatbv
44
^EXIT=0$

regression/cbmc/Float8/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE broken-smt-backend
1+
CORE
22
main.c
33

44
^EXIT=0$

src/solvers/smt2/smt2_conv.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ smt2_convt::smt2_convt(
8585
break;
8686

8787
case solvert::CPROVER_SMT2:
88+
use_FPA_theory = true;
8889
use_array_of_bool = true;
8990
use_as_const = true;
9091
use_check_sat_assuming = true;
@@ -406,23 +407,23 @@ constant_exprt smt2_convt::parse_literal(
406407
{
407408
std::size_t e = unsafe_string2size_t(src.get_sub()[2].id_string());
408409
std::size_t s = unsafe_string2size_t(src.get_sub()[3].id_string());
409-
return ieee_floatt::plus_infinity(ieee_float_spect(s, e)).to_expr();
410+
return ieee_floatt::plus_infinity(ieee_float_spect(s - 1, e)).to_expr();
410411
}
411412
else if(src.get_sub().size()==4 &&
412413
src.get_sub()[0].id()=="_" &&
413414
src.get_sub()[1].id()=="-oo") // (_ -oo e s)
414415
{
415416
std::size_t e = unsafe_string2size_t(src.get_sub()[2].id_string());
416417
std::size_t s = unsafe_string2size_t(src.get_sub()[3].id_string());
417-
return ieee_floatt::minus_infinity(ieee_float_spect(s, e)).to_expr();
418+
return ieee_floatt::minus_infinity(ieee_float_spect(s - 1, e)).to_expr();
418419
}
419420
else if(src.get_sub().size()==4 &&
420421
src.get_sub()[0].id()=="_" &&
421422
src.get_sub()[1].id()=="NaN") // (_ NaN e s)
422423
{
423424
std::size_t e = unsafe_string2size_t(src.get_sub()[2].id_string());
424425
std::size_t s = unsafe_string2size_t(src.get_sub()[3].id_string());
425-
return ieee_floatt::NaN(ieee_float_spect(s, e)).to_expr();
426+
return ieee_floatt::NaN(ieee_float_spect(s - 1, e)).to_expr();
426427
}
427428

428429
if(type.id()==ID_signedbv ||

0 commit comments

Comments
 (0)