Skip to content

Commit fcaeb7b

Browse files
Make symex_level2t::operator() handle non-empty L2
This was handled by set_l2_indices, but it is neccessary to handle it in symex_level2t for making set_l2_indices return a renamedt.
1 parent 97540f1 commit fcaeb7b

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/goto-symex/goto_symex_state.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,6 @@ goto_symex_statet::set_l1_indices(ssa_exprt ssa_expr, const namespacet &ns)
250250
ssa_exprt
251251
goto_symex_statet::set_l2_indices(ssa_exprt ssa_expr, const namespacet &ns)
252252
{
253-
if(!ssa_expr.get_level_2().empty())
254-
return ssa_expr;
255253
renamedt<ssa_exprt, L2> l2 =
256254
level2(level1(level0(std::move(ssa_expr), ns, source.thread_nr)));
257255
return l2.get();

src/goto-symex/renaming_level.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ operator()(renamedt<ssa_exprt, L0> l0_expr) const
6969
renamedt<ssa_exprt, L2> symex_level2t::
7070
operator()(renamedt<ssa_exprt, L1> l1_expr) const
7171
{
72+
if(!l1_expr.get().get_level_2().empty())
73+
{
74+
// TODO reaching here means the information that l1_expr was L2 has
75+
// TODO been lost somewhere during execution, which should be avoided
76+
return renamedt<ssa_exprt, L2>{std::move(l1_expr.value)};
77+
}
7278
l1_expr.value.set_level_2(current_count(l1_expr.get().get_identifier()));
7379
return renamedt<ssa_exprt, L2>{std::move(l1_expr.value)};
7480
}

0 commit comments

Comments
 (0)