Skip to content

Commit 17422ea

Browse files
committed
Add a handling of the case of ID_implies to the check_rec dispatcher in goto_check.
That allows the `guard` expression to be properly instantiated based on the antecedent expression of the implication statement instead of it inheriting a `true_exprt` as a `guard`. This allows checks that are constrained by an expression in the antecedent, such as pointer checks in the consequent of an implication inside a `__CPROVER_forall` statement to be correctly bound and checked.
1 parent 249d3f0 commit 17422ea

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/analyses/goto_check.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1736,7 +1736,7 @@ void goto_checkt::check_rec(const exprt &expr, guardt &guard)
17361736
check_rec_address(to_address_of_expr(expr).object(), guard);
17371737
return;
17381738
}
1739-
else if(expr.id() == ID_and || expr.id() == ID_or)
1739+
else if(expr.id() == ID_and || expr.id() == ID_or || expr.id() == ID_implies)
17401740
{
17411741
check_rec_logical_op(expr, guard);
17421742
return;

0 commit comments

Comments
 (0)