diff --git a/src/cprover/axioms.cpp b/src/cprover/axioms.cpp index e381f17abbb..e38b930fca3 100644 --- a/src/cprover/axioms.cpp +++ b/src/cprover/axioms.cpp @@ -65,9 +65,13 @@ void axiomst::evaluate_fc() if(a_it->state() != b_it->state()) continue; + // Skip pairs with incompatible address types — they can never + // point to the same location. + if(a_it->address().type() != b_it->address().type()) + continue; + auto a_op = a_it->address(); - auto b_op = typecast_exprt::conditional_cast( - b_it->address(), a_it->address().type()); + auto b_op = b_it->address(); auto operands_equal = equal_exprt(a_op, b_op); auto implication = implies_exprt( operands_equal,