Skip to content

Commit 730e026

Browse files
Avoid guard to expr conversion in symex_assume
1 parent 4a39dfd commit 730e026

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/goto-symex/symex_main.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,15 @@ void goto_symext::vcc(
100100

101101
void goto_symext::symex_assume(statet &state, const exprt &cond)
102102
{
103-
exprt simplified_cond=cond;
103+
guardt cond_guard(guard_manager);
104+
cond_guard.add(cond);
104105

105-
do_simplify(simplified_cond);
106-
107-
if(simplified_cond.is_true())
106+
if(cond_guard.is_true())
108107
return;
109108

110109
if(state.threads.size()==1)
111110
{
112-
exprt tmp=simplified_cond;
111+
exprt tmp = cond_guard.as_expr();
113112
state.guard.guard_expr(tmp);
114113
target.assumption(state.guard.as_expr(), tmp, state.source);
115114
}
@@ -120,7 +119,7 @@ void goto_symext::symex_assume(statet &state, const exprt &cond)
120119
// x=0; assume(x==1);
121120
// assert(x!=42); x=42;
122121
else
123-
state.guard.add(simplified_cond);
122+
state.guard.append(cond_guard);
124123

125124
if(state.atomic_section_id!=0 &&
126125
state.guard.is_false())

0 commit comments

Comments
 (0)