@@ -53,8 +53,8 @@ literalt boolbvt::convert_extractbit(const extractbit_exprt &expr)
5353 std::max (address_bits (src_bv_width), index_bv_width);
5454 unsignedbv_typet index_type (index_width);
5555
56- equal_exprt equality (
57- typecast_exprt::conditional_cast (index, index_type), exprt ()) ;
56+ const auto index_casted =
57+ typecast_exprt::conditional_cast (index, index_type);
5858
5959 if (prop.has_set_to ())
6060 {
@@ -64,7 +64,7 @@ literalt boolbvt::convert_extractbit(const extractbit_exprt &expr)
6464 // add implications
6565 for (std::size_t i = 0 ; i < src_bv.size (); i++)
6666 {
67- equality. rhs ()= from_integer (i, index_type);
67+ equal_exprt equality (index_casted, from_integer (i, index_type) );
6868 literalt equal = prop.lequal (literal, src_bv[i]);
6969 prop.l_set_to_true (prop.limplies (convert (equality), equal));
7070 }
@@ -77,7 +77,7 @@ literalt boolbvt::convert_extractbit(const extractbit_exprt &expr)
7777
7878 for (std::size_t i = 0 ; i < src_bv.size (); i++)
7979 {
80- equality. rhs ()= from_integer (i, index_type);
80+ equal_exprt equality (index_casted, from_integer (i, index_type) );
8181 literal = prop.lselect (convert (equality), src_bv[i], literal);
8282 }
8383
0 commit comments