@@ -546,8 +546,7 @@ bvt bv_pointerst::convert_bitvector(const exprt &expr)
546
546
// do the same-object-test via an expression as this may permit re-using
547
547
// already cached encodings of the equality test
548
548
const exprt same_object = ::same_object (minus_expr.lhs (), minus_expr.rhs ());
549
- const bvt &same_object_bv = convert_bv (same_object);
550
- CHECK_RETURN (same_object_bv.size () == 1 );
549
+ const literalt same_object_lit = convert (same_object);
551
550
552
551
// compute the object size (again, possibly using cached results)
553
552
const exprt object_size = ::object_size (minus_expr.lhs ());
@@ -556,7 +555,7 @@ bvt bv_pointerst::convert_bitvector(const exprt &expr)
556
555
557
556
bvt bv = prop.new_variables (width);
558
557
559
- if (!same_object_bv[ 0 ] .is_false ())
558
+ if (!same_object_lit .is_false ())
560
559
{
561
560
const pointer_typet &lhs_pt = to_pointer_type (minus_expr.lhs ().type ());
562
561
const bvt &lhs = convert_bv (minus_expr.lhs ());
@@ -604,7 +603,7 @@ bvt bv_pointerst::convert_bitvector(const exprt &expr)
604
603
}
605
604
606
605
prop.l_set_to_true (prop.limplies (
607
- prop.land (same_object_bv[ 0 ] , prop.land (lhs_in_bounds, rhs_in_bounds)),
606
+ prop.land (same_object_lit , prop.land (lhs_in_bounds, rhs_in_bounds)),
608
607
bv_utils.equal (difference, bv)));
609
608
}
610
609
0 commit comments