Skip to content

Commit 247b35d

Browse files
Make set_l2_indices return a copy
This is in preparation to making it return a renamedt object.
1 parent 9ff5303 commit 247b35d

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

src/goto-symex/goto_symex_state.cpp

Lines changed: 10 additions & 13 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);
@@ -249,15 +249,15 @@ renamedt<ssa_exprt, L1> goto_symex_statet::set_l1_indices(
249249
return level1(level0(std::move(ssa_expr), ns, source.thread_nr));
250250
}
251251

252-
void goto_symex_statet::set_l2_indices(
253-
ssa_exprt &ssa_expr,
252+
ssa_exprt goto_symex_statet::set_l2_indices(
253+
ssa_exprt ssa_expr,
254254
const namespacet &ns)
255255
{
256256
if(!ssa_expr.get_level_2().empty())
257-
return;
257+
return ssa_expr;
258258
renamedt<ssa_exprt, L2> l2 =
259259
level2(level1(level0(std::move(ssa_expr), ns, source.thread_nr)));
260-
ssa_expr = l2.get();
260+
return l2.get();
261261
}
262262

263263
template <levelt level>
@@ -332,7 +332,7 @@ exprt goto_symex_statet::rename(exprt expr, const namespacet &ns)
332332
if(p_it != propagation.end())
333333
expr=p_it->second; // already L2
334334
else
335-
set_l2_indices(ssa, ns);
335+
ssa = set_l2_indices(ssa, ns);
336336
}
337337
}
338338
}
@@ -447,7 +447,7 @@ bool goto_symex_statet::l2_thread_read_encoding(
447447
cond |= guardt{no_write.op()};
448448

449449
if_exprt tmp(cond.as_expr(), ssa_l1, ssa_l1);
450-
set_l2_indices(to_ssa_expr(tmp.true_case()), ns);
450+
tmp.true_case() = set_l2_indices(to_ssa_expr(tmp.true_case()), ns);
451451

452452
if(a_s_read.second.empty())
453453
{
@@ -480,8 +480,7 @@ bool goto_symex_statet::l2_thread_read_encoding(
480480
source,
481481
symex_targett::assignment_typet::PHI);
482482

483-
set_l2_indices(ssa_l1, ns);
484-
expr=ssa_l1;
483+
expr = set_l2_indices(ssa_l1, ns);
485484

486485
a_s_read.second.push_back(guard);
487486
if(!no_write.op().is_false())
@@ -497,15 +496,13 @@ bool goto_symex_statet::l2_thread_read_encoding(
497496
// No event and no fresh index, but avoid constant propagation
498497
if(!record_events)
499498
{
500-
set_l2_indices(ssa_l1, ns);
501-
expr=ssa_l1;
499+
expr = set_l2_indices(ssa_l1, ns);
502500
return true;
503501
}
504502

505503
// produce a fresh L2 name
506504
symex_renaming_levelt::increase_counter(level2_it);
507-
set_l2_indices(ssa_l1, ns);
508-
expr=ssa_l1;
505+
expr = set_l2_indices(ssa_l1, ns);
509506

510507
// and record that
511508
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)