@@ -188,7 +188,7 @@ void goto_symex_statet::assignment(
188
188
const auto level2_it =
189
189
level2.current_names .emplace (l1_identifier, std::make_pair (lhs, 0 )).first ;
190
190
symex_renaming_levelt::increase_counter (level2_it);
191
- set_l2_indices (lhs, ns);
191
+ lhs = set_l2_indices (lhs, ns);
192
192
193
193
// in case we happen to be multi-threaded, record the memory access
194
194
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)
247
247
return level1 (level0 (std::move (ssa_expr), ns, source.thread_nr ));
248
248
}
249
249
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)
253
252
{
254
253
if (!ssa_expr.get_level_2 ().empty ())
255
- return ;
254
+ return ssa_expr ;
256
255
renamedt<ssa_exprt, L2> l2 =
257
256
level2 (level1 (level0 (std::move (ssa_expr), ns, source.thread_nr )));
258
- ssa_expr = l2.get ();
257
+ return l2.get ();
259
258
}
260
259
261
260
template <levelt level>
@@ -330,7 +329,7 @@ exprt goto_symex_statet::rename(exprt expr, const namespacet &ns)
330
329
if (p_it != propagation.end ())
331
330
expr=p_it->second ; // already L2
332
331
else
333
- set_l2_indices (ssa, ns);
332
+ ssa = set_l2_indices (ssa, ns);
334
333
}
335
334
}
336
335
}
@@ -445,7 +444,7 @@ bool goto_symex_statet::l2_thread_read_encoding(
445
444
cond |= guardt{no_write.op ()};
446
445
447
446
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);
449
448
450
449
if (a_s_read.second .empty ())
451
450
{
@@ -478,8 +477,7 @@ bool goto_symex_statet::l2_thread_read_encoding(
478
477
source,
479
478
symex_targett::assignment_typet::PHI);
480
479
481
- set_l2_indices (ssa_l1, ns);
482
- expr=ssa_l1;
480
+ expr = set_l2_indices (ssa_l1, ns);
483
481
484
482
a_s_read.second .push_back (guard);
485
483
if (!no_write.op ().is_false ())
@@ -495,15 +493,13 @@ bool goto_symex_statet::l2_thread_read_encoding(
495
493
// No event and no fresh index, but avoid constant propagation
496
494
if (!record_events)
497
495
{
498
- set_l2_indices (ssa_l1, ns);
499
- expr=ssa_l1;
496
+ expr = set_l2_indices (ssa_l1, ns);
500
497
return true ;
501
498
}
502
499
503
500
// produce a fresh L2 name
504
501
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);
507
503
508
504
// and record that
509
505
INVARIANT_STRUCTURED (
0 commit comments