Skip to content

Commit 9b62264

Browse files
Make set_l2_indices return a copy
This is in preparation to making it return a renamedt object.
1 parent 42e4253 commit 9b62264

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

src/goto-symex/goto_symex_state.cpp

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ void goto_symex_statet::assignment(
188188
const auto level2_it =
189189
level2.current_names.emplace(l1_identifier, std::make_pair(lhs, 0)).first;
190190
symex_renaming_levelt::increase_counter(level2_it);
191-
set_l2_indices(lhs, ns);
191+
lhs = set_l2_indices(lhs, ns);
192192

193193
// in case we happen to be multi-threaded, record the memory access
194194
bool is_shared=l2_thread_write_encoding(lhs, ns);
@@ -247,15 +247,14 @@ goto_symex_statet::set_l1_indices(ssa_exprt ssa_expr, const namespacet &ns)
247247
return level1(level0(std::move(ssa_expr), ns, source.thread_nr));
248248
}
249249

250-
void goto_symex_statet::set_l2_indices(
251-
ssa_exprt &ssa_expr,
252-
const namespacet &ns)
250+
ssa_exprt
251+
goto_symex_statet::set_l2_indices(ssa_exprt ssa_expr, const namespacet &ns)
253252
{
254253
if(!ssa_expr.get_level_2().empty())
255-
return;
254+
return ssa_expr;
256255
renamedt<ssa_exprt, L2> l2 =
257256
level2(level1(level0(std::move(ssa_expr), ns, source.thread_nr)));
258-
ssa_expr = l2.get();
257+
return l2.get();
259258
}
260259

261260
template <levelt level>
@@ -330,7 +329,7 @@ exprt goto_symex_statet::rename(exprt expr, const namespacet &ns)
330329
if(p_it != propagation.end())
331330
expr=p_it->second; // already L2
332331
else
333-
set_l2_indices(ssa, ns);
332+
ssa = set_l2_indices(ssa, ns);
334333
}
335334
}
336335
}
@@ -445,7 +444,7 @@ bool goto_symex_statet::l2_thread_read_encoding(
445444
cond |= guardt{no_write.op()};
446445

447446
if_exprt tmp(cond.as_expr(), ssa_l1, ssa_l1);
448-
set_l2_indices(to_ssa_expr(tmp.true_case()), ns);
447+
tmp.true_case() = set_l2_indices(to_ssa_expr(tmp.true_case()), ns);
449448

450449
if(a_s_read.second.empty())
451450
{
@@ -478,8 +477,7 @@ bool goto_symex_statet::l2_thread_read_encoding(
478477
source,
479478
symex_targett::assignment_typet::PHI);
480479

481-
set_l2_indices(ssa_l1, ns);
482-
expr=ssa_l1;
480+
expr = set_l2_indices(ssa_l1, ns);
483481

484482
a_s_read.second.push_back(guard);
485483
if(!no_write.op().is_false())
@@ -495,15 +493,13 @@ bool goto_symex_statet::l2_thread_read_encoding(
495493
// No event and no fresh index, but avoid constant propagation
496494
if(!record_events)
497495
{
498-
set_l2_indices(ssa_l1, ns);
499-
expr=ssa_l1;
496+
expr = set_l2_indices(ssa_l1, ns);
500497
return true;
501498
}
502499

503500
// produce a fresh L2 name
504501
symex_renaming_levelt::increase_counter(level2_it);
505-
set_l2_indices(ssa_l1, ns);
506-
expr=ssa_l1;
502+
expr = set_l2_indices(ssa_l1, ns);
507503

508504
// and record that
509505
INVARIANT_STRUCTURED(

src/goto-symex/goto_symex_state.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class goto_symex_statet final : public goto_statet
120120
renamedt<ssa_exprt, L1> set_l1_indices(ssa_exprt expr, const namespacet &ns);
121121

122122
/// Update level 0, 1 and 2 values.
123-
void set_l2_indices(ssa_exprt &expr, const namespacet &ns);
123+
ssa_exprt set_l2_indices(ssa_exprt expr, const namespacet &ns);
124124

125125
// this maps L1 names to (L2) types
126126
typedef std::unordered_map<irep_idt, typet> l1_typest;

0 commit comments

Comments
 (0)