Skip to content

Commit 74ba975

Browse files
committed
Stop skipping of quantifier expressions in check_rec.
This now allows us to generate checks inside `__CPROVER_forall` and `__CPROVER_exists` statements. Related to issue #6231.
1 parent af94148 commit 74ba975

File tree

1 file changed

+1
-9
lines changed

1 file changed

+1
-9
lines changed

src/analyses/goto_check.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,10 +1580,6 @@ void goto_checkt::add_guarded_property(
15801580

15811581
void goto_checkt::check_rec_address(const exprt &expr, guardt &guard)
15821582
{
1583-
// we don't look into quantifiers
1584-
if(expr.id() == ID_exists || expr.id() == ID_forall)
1585-
return;
1586-
15871583
if(expr.id() == ID_dereference)
15881584
{
15891585
check_rec(to_dereference_expr(expr).pointer(), guard);
@@ -1724,16 +1720,12 @@ void goto_checkt::check_rec_arithmetic_op(const exprt &expr, guardt &guard)
17241720

17251721
void goto_checkt::check_rec(const exprt &expr, guardt &guard)
17261722
{
1727-
// we don't look into quantifiers
1728-
if(expr.id() == ID_exists || expr.id() == ID_forall)
1729-
return;
1730-
17311723
if(expr.id() == ID_address_of)
17321724
{
17331725
check_rec_address(to_address_of_expr(expr).object(), guard);
17341726
return;
17351727
}
1736-
else if(expr.id() == ID_and || expr.id() == ID_or)
1728+
else if(expr.id() == ID_and || expr.id() == ID_or || expr.id() == ID_implies)
17371729
{
17381730
check_rec_logical_op(expr, guard);
17391731
return;

0 commit comments

Comments
 (0)