Skip to content

Commit f5f870b

Browse files
author
Daniel Kroening
authored
Merge pull request #3460 from diffblue/smt2-fixes
SMT2-backend fix: constants
2 parents 1893fdb + e4f3fc3 commit f5f870b

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

scripts/delete_failing_smt2_solver_tests

+6-12
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,18 @@
11
#!/bin/sh
22

33
cd regression/cbmc
4-
rm Address_of2/test.desc
54
rm Anonymous_Struct3/test.desc
65
rm Array_Initialization2/test.desc
76
rm Array_operations1/test.desc
8-
rm BV_Arithmetic6/test.desc
97
rm Bitfields1/test.desc
108
rm Bitfields3/test.desc
119
rm Boolean_Guards1/test.desc
1210
rm Computed-Goto1/test.desc
13-
rm Division2/test.desc
1411
rm Empty_struct1/test.desc
15-
rm Endianness3/test.desc
1612
rm Endianness4/test.desc
1713
rm Endianness6/test.desc
1814
rm Endianness7/test.desc
19-
rm Fixedbv3/test.desc
20-
rm Fixedbv5/test.desc
21-
rm Fixedbv6/test.desc
15+
rm Fixedbv8/test.desc
2216
rm Float-div2/test.desc
2317
rm Float-div3/test.desc
2418
rm Float-no-simp1/test.desc
@@ -47,7 +41,6 @@ rm Float6/test.desc
4741
rm Float8/test.desc
4842
rm Free2/test.desc
4943
rm Function1/test.desc
50-
rm Function_Pointer3/test.desc
5144
rm Initialization6/test.desc
5245
rm Linking4/test.desc
5346
rm Linking7/test.desc
@@ -67,6 +60,7 @@ rm Multi_Dimensional_Array4/test.desc
6760
rm Multi_Dimensional_Array6/test.desc
6861
rm Multiple_Properties1/test.desc
6962
rm Overflow_Leftshift1/test.desc
63+
rm Overflow_Multiplication1/test.desc
7064
rm Overflow_Subtraction1/test.desc
7165
rm Pointer_Arithmetic1/test.desc
7266
rm Pointer_Arithmetic10/test.desc
@@ -84,7 +78,6 @@ rm Pointer_byte_extract5/no-simplify.desc
8478
rm Pointer_byte_extract5/test.desc
8579
rm Pointer_byte_extract7/test.desc
8680
rm Pointer_byte_extract9/test.desc
87-
rm Pointer_difference1/test.desc
8881
rm Promotion3/test.desc
8982
rm Promotion4/test.desc
9083
rm Quantifiers-assertion/test.desc
@@ -105,6 +98,7 @@ rm Struct_Bytewise1/test.desc
10598
rm Struct_Bytewise2/test.desc
10699
rm Struct_Initialization2/test.desc
107100
rm Struct_Padding1/test.desc
101+
rm Typecast1/test.desc
108102
rm Undefined_Shift1/test.desc
109103
rm Union_Initialization1/test.desc
110104
rm Unwinding_Locality1/test.desc
@@ -121,8 +115,10 @@ rm byte_update4/test.desc
121115
rm byte_update5/test.desc
122116
rm byte_update6/test.desc
123117
rm byte_update7/test.desc
118+
rm byte_update8/test.desc
119+
rm byte_update9/test.desc
120+
rm compact-trace/test.desc
124121
rm dynamic_size1/stack_object.desc
125-
rm dynamic_size1/test.desc
126122
rm equality_through_array1/test.desc
127123
rm equality_through_array2/test.desc
128124
rm equality_through_array3/test.desc
@@ -155,7 +151,6 @@ rm integer-assignments1/test.desc
155151
rm little-endian-array1/test.desc
156152
rm memory_allocation1/test.desc
157153
rm memset1/test.desc
158-
rm memset3/test.desc
159154
rm mm_io1/test.desc
160155
rm no_nondet_static/test.desc
161156
rm null1/test.desc
@@ -173,7 +168,6 @@ rm trace_address_arithmetic1/test.desc
173168
rm trace_options_json_extended/extended.desc
174169
rm trace_options_json_extended/non-extended.desc
175170
rm trace_show_function_calls/test.desc
176-
rm uncaught_exceptions_analysis1/test.desc
177171
rm uniform_array1/test.desc
178172
rm union11/union_list.desc
179173
rm union5/test.desc

src/solvers/smt2/smt2_conv.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -2710,19 +2710,18 @@ void smt2_convt::convert_constant(const constant_exprt &expr)
27102710
expr_type.id()==ID_incomplete_c_enum ||
27112711
expr_type.id()==ID_c_bit_field)
27122712
{
2713-
mp_integer value=binary2integer(id2string(expr.get_value()), false);
2713+
const std::size_t width = boolbv_width(expr_type);
27142714

2715-
std::size_t width=boolbv_width(expr_type);
2715+
const mp_integer value = bvrep2integer(expr.get_value(), width, false);
27162716

27172717
out << "(_ bv" << value
27182718
<< " " << width << ")";
27192719
}
27202720
else if(expr_type.id()==ID_fixedbv)
27212721
{
2722-
fixedbv_spect spec(to_fixedbv_type(expr_type));
2722+
const fixedbv_spect spec(to_fixedbv_type(expr_type));
27232723

2724-
std::string v_str=id2string(expr.get_value());
2725-
mp_integer v=binary2integer(v_str, false);
2724+
const mp_integer v = bvrep2integer(expr.get_value(), spec.width, false);
27262725

27272726
out << "(_ bv" << v << " " << spec.width << ")";
27282727
}

0 commit comments

Comments
 (0)