Skip to content

Commit c3487c3

Browse files
Avoid calling rename with level=L1
The method rename_level1 should be called directly This will allow us to get rid of the L1 case in rename and make the function return a type which reflects the level of renaming.
1 parent 23c4945 commit c3487c3

8 files changed

+18
-14
lines changed

src/goto-symex/goto_symex_state.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ void goto_symex_statet::assignment(
174174
bool allow_pointer_unsoundness)
175175
{
176176
// identifier should be l0 or l1, make sure it's l1
177-
rename(lhs, ns, L1);
177+
rename_level1(lhs, ns);
178178
irep_idt l1_identifier=lhs.get_identifier();
179179

180180
// the type might need renaming
@@ -635,8 +635,10 @@ void goto_symex_statet::rename_address(
635635
auto rename_expr = [&](exprt &e) {
636636
if(level == L0)
637637
rename_level0(e, ns);
638+
else if(level == L1)
639+
rename_level1(e, ns);
638640
else
639-
rename(e, ns, level);
641+
rename(e, ns);
640642
};
641643

642644
if(expr.id()==ID_symbol &&
@@ -737,8 +739,10 @@ void goto_symex_statet::rename(
737739
auto rename_expr = [&](exprt &e) {
738740
if(level == L0)
739741
rename_level0(e, ns);
742+
else if(level == L1)
743+
rename_level1(e, ns);
740744
else
741-
rename(e, ns, level);
745+
rename(e, ns);
742746
};
743747

744748
// rename all the symbols with their last known value

src/goto-symex/symex_dead.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ void goto_symext::symex_dead(statet &state)
2727
// We also prevent propagation of old values.
2828

2929
ssa_exprt ssa(code.symbol());
30-
state.rename(ssa, ns, goto_symex_statet::L1);
30+
state.rename_level1(ssa, ns);
3131

3232
// in case of pointers, put something into the value set
3333
if(code.symbol().type().id() == ID_pointer)
@@ -38,7 +38,7 @@ void goto_symext::symex_dead(statet &state)
3838
return exprt(ID_invalid);
3939
}();
4040

41-
state.rename(rhs, ns, goto_symex_statet::L1);
41+
state.rename_level1(rhs, ns);
4242
state.value_set.assign(ssa, rhs, ns, true, false);
4343
}
4444

src/goto-symex/symex_decl.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void goto_symext::symex_decl(statet &state, const symbol_exprt &expr)
3838
// We also prevent propagation of old values.
3939

4040
ssa_exprt ssa(expr);
41-
state.rename(ssa, ns, goto_symex_statet::L1);
41+
state.rename_level1(ssa, ns);
4242
const irep_idt &l1_identifier=ssa.get_identifier();
4343

4444
// rename type to L2
@@ -54,7 +54,7 @@ void goto_symext::symex_decl(statet &state, const symbol_exprt &expr)
5454
return exprt(ID_invalid);
5555
}();
5656

57-
state.rename(rhs, ns, goto_symex_statet::L1);
57+
state.rename_level1(rhs, ns);
5858
state.value_set.assign(ssa, rhs, ns, true, false);
5959
}
6060

src/goto-symex/symex_dereference.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,12 +381,12 @@ void goto_symext::dereference(
381381
// from different frames. Would be enough to rename
382382
// symbols whose address is taken.
383383
PRECONDITION(!state.call_stack().empty());
384-
state.rename(expr, ns, goto_symex_statet::L1);
384+
state.rename_level1(expr, ns);
385385

386386
// start the recursion!
387387
guardt guard{true_exprt{}};
388388
dereference_rec(expr, state, guard, write);
389389
// dereferencing may introduce new symbol_exprt
390390
// (like __CPROVER_memory)
391-
state.rename(expr, ns, goto_symex_statet::L1);
391+
state.rename_level1(expr, ns);
392392
}

src/goto-symex/symex_dereference_state.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ bool symex_dereference_statet::has_failed_symbol(
3737
symbolt sym=*symbol;
3838
symbolt *sym_ptr=nullptr;
3939
symbol_exprt sym_expr=sym.symbol_expr();
40-
state.rename(sym_expr, ns, goto_symex_statet::L1);
40+
state.rename_level1(sym_expr, ns);
4141
sym.name=to_ssa_expr(sym_expr).get_identifier();
4242
state.symbol_table.move(sym, sym_ptr);
4343
symbol=sym_ptr;
@@ -57,7 +57,7 @@ bool symex_dereference_statet::has_failed_symbol(
5757
symbolt sym=*symbol;
5858
symbolt *sym_ptr=nullptr;
5959
symbol_exprt sym_expr=sym.symbol_expr();
60-
state.rename(sym_expr, ns, goto_symex_statet::L1);
60+
state.rename_level1(sym_expr, ns);
6161
sym.name=to_ssa_expr(sym_expr).get_identifier();
6262
state.symbol_table.move(sym, sym_ptr);
6363
symbol=sym_ptr;

src/goto-symex/symex_function_call.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ void goto_symext::locality(
422422
// identifiers may be shared among functions
423423
// (e.g., due to inlining or other code restructuring)
424424

425-
state.rename(ssa, ns, goto_symex_statet::L1);
425+
state.rename_level1(ssa, ns);
426426

427427
irep_idt l1_name=ssa.get_identifier();
428428
unsigned offset=0;

src/goto-symex/symex_goto.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ void goto_symext::symex_goto(statet &state)
248248
exprt new_rhs = boolean_negate(new_guard);
249249

250250
ssa_exprt new_lhs(guard_symbol_expr);
251-
state.rename(new_lhs, ns, goto_symex_statet::L1);
251+
state.rename_level1(new_lhs, ns);
252252
state.assignment(new_lhs, new_rhs, ns, true, false);
253253

254254
guardt guard{true_exprt{}};

src/goto-symex/symex_start_thread.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void goto_symext::symex_start_thread(statet &state)
7171
auto emplace_result = state.level1.current_names.emplace(
7272
lhs.get_l1_object_identifier(), std::make_pair(lhs, 0));
7373
CHECK_RETURN(emplace_result.second);
74-
state.rename(lhs, ns, goto_symex_statet::L1);
74+
state.rename_level1(lhs, ns);
7575
const irep_idt l1_name=lhs.get_l1_object_identifier();
7676
// store it
7777
state.l1_history.insert(l1_name);

0 commit comments

Comments
 (0)