Skip to content

Commit 5e643cd

Browse files
author
Daniel Kroening
committed
smt2 backend: fix constants
1 parent 1893fdb commit 5e643cd

File tree

2 files changed

+10
-21
lines changed

2 files changed

+10
-21
lines changed

scripts/delete_failing_smt2_solver_tests

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,26 @@
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
22-
rm Float-div2/test.desc
23-
rm Float-div3/test.desc
15+
rm Fixedbv8/test.desc
2416
rm Float-no-simp1/test.desc
2517
rm Float-no-simp2/test.desc
2618
rm Float-no-simp3/test.desc
2719
rm Float-no-simp4/test.desc
2820
rm Float-no-simp5/test.desc
2921
rm Float-no-simp6/test.desc
3022
rm Float-no-simp7/test.desc
31-
rm Float-smt2-1/test.desc
3223
rm Float-to-double2/test.desc
33-
rm Float-to-int1/test.desc
3424
rm Float-to-int2/test.desc
3525
rm Float-to-int3/test.desc
3626
rm Float-zero-sum1/test.desc
@@ -47,7 +37,6 @@ rm Float6/test.desc
4737
rm Float8/test.desc
4838
rm Free2/test.desc
4939
rm Function1/test.desc
50-
rm Function_Pointer3/test.desc
5140
rm Initialization6/test.desc
5241
rm Linking4/test.desc
5342
rm Linking7/test.desc
@@ -67,6 +56,7 @@ rm Multi_Dimensional_Array4/test.desc
6756
rm Multi_Dimensional_Array6/test.desc
6857
rm Multiple_Properties1/test.desc
6958
rm Overflow_Leftshift1/test.desc
59+
rm Overflow_Multiplication1/test.desc
7060
rm Overflow_Subtraction1/test.desc
7161
rm Pointer_Arithmetic1/test.desc
7262
rm Pointer_Arithmetic10/test.desc
@@ -84,7 +74,6 @@ rm Pointer_byte_extract5/no-simplify.desc
8474
rm Pointer_byte_extract5/test.desc
8575
rm Pointer_byte_extract7/test.desc
8676
rm Pointer_byte_extract9/test.desc
87-
rm Pointer_difference1/test.desc
8877
rm Promotion3/test.desc
8978
rm Promotion4/test.desc
9079
rm Quantifiers-assertion/test.desc
@@ -105,6 +94,7 @@ rm Struct_Bytewise1/test.desc
10594
rm Struct_Bytewise2/test.desc
10695
rm Struct_Initialization2/test.desc
10796
rm Struct_Padding1/test.desc
97+
rm Typecast1/test.desc
10898
rm Undefined_Shift1/test.desc
10999
rm Union_Initialization1/test.desc
110100
rm Unwinding_Locality1/test.desc
@@ -121,8 +111,10 @@ rm byte_update4/test.desc
121111
rm byte_update5/test.desc
122112
rm byte_update6/test.desc
123113
rm byte_update7/test.desc
114+
rm byte_update8/test.desc
115+
rm byte_update9/test.desc
116+
rm compact-trace/test.desc
124117
rm dynamic_size1/stack_object.desc
125-
rm dynamic_size1/test.desc
126118
rm equality_through_array1/test.desc
127119
rm equality_through_array2/test.desc
128120
rm equality_through_array3/test.desc
@@ -155,7 +147,6 @@ rm integer-assignments1/test.desc
155147
rm little-endian-array1/test.desc
156148
rm memory_allocation1/test.desc
157149
rm memset1/test.desc
158-
rm memset3/test.desc
159150
rm mm_io1/test.desc
160151
rm no_nondet_static/test.desc
161152
rm null1/test.desc
@@ -173,7 +164,6 @@ rm trace_address_arithmetic1/test.desc
173164
rm trace_options_json_extended/extended.desc
174165
rm trace_options_json_extended/non-extended.desc
175166
rm trace_show_function_calls/test.desc
176-
rm uncaught_exceptions_analysis1/test.desc
177167
rm uniform_array1/test.desc
178168
rm union11/union_list.desc
179169
rm union5/test.desc

src/solvers/smt2/smt2_conv.cpp

Lines changed: 4 additions & 5 deletions
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)