Skip to content

Commit db61b10

Browse files
Make symex_level1t::operator() return a renamedt
This makes it explicit in the type that the expression has been renamed.
1 parent dbd153a commit db61b10

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

src/goto-symex/goto_symex_state.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,8 @@ void goto_symex_statet::set_l1_indices(
252252
return;
253253
renamedt<ssa_exprt, L0> l0 =
254254
level0(std::move(ssa_expr), ns, source.thread_nr);
255-
ssa_expr = level1(l0.get());
255+
renamedt<ssa_exprt, L1> l1 = level1(std::move(l0));
256+
ssa_expr = l1.get();
256257
}
257258

258259
void goto_symex_statet::set_l2_indices(
@@ -263,8 +264,8 @@ void goto_symex_statet::set_l2_indices(
263264
return;
264265
renamedt<ssa_exprt, L0> l0 =
265266
level0(std::move(ssa_expr), ns, source.thread_nr);
266-
ssa_exprt l1 = level1(l0.get());
267-
ssa_expr = level2(std::move(l1));
267+
renamedt<ssa_exprt, L1> l1 = level1(std::move(l0));
268+
ssa_expr = level2(l1.get());
268269
}
269270

270271
template <levelt level>

src/goto-symex/renaming_level.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,21 @@ operator()(ssa_exprt ssa_expr, const namespacet &ns, unsigned thread_nr) const
4343
return renamedt<ssa_exprt, L0>{ssa_expr};
4444
}
4545

46-
ssa_exprt symex_level1t::operator()(ssa_exprt ssa_expr) const
46+
renamedt<ssa_exprt, L1> symex_level1t::
47+
operator()(renamedt<ssa_exprt, L0> l0_expr) const
4748
{
48-
// already renamed?
49-
if(!ssa_expr.get_level_1().empty())
50-
return std::move(ssa_expr);
49+
if(!l0_expr.get().get_level_1().empty())
50+
return renamedt<ssa_exprt, L1>{std::move(l0_expr.value)};
5151

52-
const irep_idt l0_name = ssa_expr.get_l1_object_identifier();
52+
const irep_idt l0_name = l0_expr.get().get_l1_object_identifier();
5353

5454
const auto it = current_names.find(l0_name);
5555
if(it == current_names.end())
56-
return std::move(ssa_expr);
56+
return renamedt<ssa_exprt, L1>{std::move(l0_expr.value)};
5757

5858
// rename!
59-
ssa_expr.set_level_1(it->second.second);
60-
return ssa_expr;
59+
l0_expr.value.set_level_1(it->second.second);
60+
return renamedt<ssa_exprt, L1>{std::move(l0_expr.value)};
6161
}
6262

6363
ssa_exprt symex_level2t::operator()(ssa_exprt ssa_expr) const

src/goto-symex/renaming_level.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ struct symex_level0t : public symex_renaming_levelt
107107
/// This is to preserve locality in case of recursion
108108
struct symex_level1t : public symex_renaming_levelt
109109
{
110-
ssa_exprt operator()(ssa_exprt ssa_expr) const;
110+
renamedt<ssa_exprt, L1> operator()(renamedt<ssa_exprt, L0> l0_expr) const;
111111

112112
/// Insert the content of \p other into this renaming
113113
void restore_from(const current_namest &other);

0 commit comments

Comments
 (0)