Skip to content

Commit b6c4286

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 247b35d commit b6c4286

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
@@ -253,8 +253,6 @@ ssa_exprt goto_symex_statet::set_l2_indices(
253253
ssa_exprt ssa_expr,
254254
const namespacet &ns)
255255
{
256-
if(!ssa_expr.get_level_2().empty())
257-
return ssa_expr;
258256
renamedt<ssa_exprt, L2> l2 =
259257
level2(level1(level0(std::move(ssa_expr), ns, source.thread_nr)));
260258
return l2.get();

src/goto-symex/renaming_level.cpp

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

0 commit comments

Comments
 (0)