Skip to content

Commit 70fd5fd

Browse files
authored
Merge pull request #5691 from tautschnig/is_ssa_expr
Use is_ssa_expr to avoid lower-level get_bool(ID_C_SSA_symbol)
2 parents 4ee2683 + 2a4513f commit 70fd5fd

10 files changed

+17
-27
lines changed

src/goto-symex/auto_objects.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ void goto_symext::initialize_auto_object(const exprt &expr, statet &state)
7878
void goto_symext::trigger_auto_object(const exprt &expr, statet &state)
7979
{
8080
expr.visit_pre([&state, this](const exprt &e) {
81-
if(e.id() == ID_symbol && e.get_bool(ID_C_SSA_symbol))
81+
if(is_ssa_expr(e))
8282
{
8383
const ssa_exprt &ssa_expr = to_ssa_expr(e);
8484
const irep_idt &obj_identifier = ssa_expr.get_object_name();

src/goto-symex/field_sensitivity.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ exprt field_sensitivityt::apply(
3333
*it = apply(ns, state, std::move(*it), write);
3434
}
3535

36-
if(expr.id() == ID_symbol && expr.get_bool(ID_C_SSA_symbol) && !write)
36+
if(is_ssa_expr(expr) && !write)
3737
{
3838
return get_fields(ns, state, to_ssa_expr(expr));
3939
}
@@ -59,8 +59,7 @@ exprt field_sensitivityt::apply(
5959
member_exprt &member = to_member_expr(expr);
6060

6161
if(
62-
member.struct_op().id() == ID_symbol &&
63-
member.struct_op().get_bool(ID_C_SSA_symbol) &&
62+
is_ssa_expr(member.struct_op()) &&
6463
(member.struct_op().type().id() == ID_struct ||
6564
member.struct_op().type().id() == ID_struct_tag))
6665
{
@@ -88,9 +87,7 @@ exprt field_sensitivityt::apply(
8887
simplify(index.index(), ns);
8988

9089
if(
91-
index.array().id() == ID_symbol &&
92-
index.array().get_bool(ID_C_SSA_symbol) &&
93-
index.array().type().id() == ID_array &&
90+
is_ssa_expr(index.array()) && index.array().type().id() == ID_array &&
9491
index.index().id() == ID_constant)
9592
{
9693
// place the entire index expression, not just the array operand, in an
@@ -252,7 +249,7 @@ void field_sensitivityt::field_assignments_rec(
252249
{
253250
if(lhs == lhs_fs)
254251
return;
255-
else if(lhs_fs.id() == ID_symbol && lhs_fs.get_bool(ID_C_SSA_symbol))
252+
else if(is_ssa_expr(lhs_fs))
256253
{
257254
exprt ssa_rhs = state.rename(lhs, ns).get();
258255
simplify(ssa_rhs, ns);

src/goto-symex/goto_symex_state.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,7 @@ goto_symex_statet::rename(exprt expr, const namespacet &ns)
178178
level == L2,
179179
"must handle all renaming levels");
180180

181-
if(expr.id()==ID_symbol &&
182-
expr.get_bool(ID_C_SSA_symbol))
181+
if(is_ssa_expr(expr))
183182
{
184183
exprt original_expr = expr;
185184
ssa_exprt &ssa=to_ssa_expr(expr);
@@ -546,8 +545,7 @@ bool goto_symex_statet::l2_thread_write_encoding(
546545
template <levelt level>
547546
void goto_symex_statet::rename_address(exprt &expr, const namespacet &ns)
548547
{
549-
if(expr.id()==ID_symbol &&
550-
expr.get_bool(ID_C_SSA_symbol))
548+
if(is_ssa_expr(expr))
551549
{
552550
ssa_exprt &ssa=to_ssa_expr(expr);
553551

@@ -751,8 +749,7 @@ static void get_l1_name(exprt &expr)
751749
{
752750
// do not reset the type !
753751

754-
if(expr.id()==ID_symbol &&
755-
expr.get_bool(ID_C_SSA_symbol))
752+
if(is_ssa_expr(expr))
756753
to_ssa_expr(expr).remove_level_2();
757754
else
758755
Forall_operands(it, expr)
@@ -846,7 +843,7 @@ ssa_exprt goto_symex_statet::declare(ssa_exprt ssa, const namespacet &ns)
846843
record_events.push(false);
847844
exprt expr_l2 = rename(std::move(ssa), ns).get();
848845
INVARIANT(
849-
expr_l2.id() == ID_symbol && expr_l2.get_bool(ID_C_SSA_symbol),
846+
is_ssa_expr(expr_l2),
850847
"symbol to declare should not be replaced by constant propagation");
851848
ssa = to_ssa_expr(expr_l2);
852849
record_events.pop();

src/goto-symex/postcondition.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,7 @@ bool postconditiont::is_used(
148148
{
149149
return is_used_address_of(to_address_of_expr(expr).object(), identifier);
150150
}
151-
else if(expr.id()==ID_symbol &&
152-
expr.get_bool(ID_C_SSA_symbol))
151+
else if(is_ssa_expr(expr))
153152
{
154153
return to_ssa_expr(expr).get_object_name()==identifier;
155154
}

src/goto-symex/renaming_level.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ exprt get_original_name(exprt expr)
157157
{
158158
expr.type() = get_original_name(std::move(expr.type()));
159159

160-
if(expr.id() == ID_symbol && expr.get_bool(ID_C_SSA_symbol))
160+
if(is_ssa_expr(expr))
161161
return to_ssa_expr(expr).get_original_expr();
162162
else
163163
{

src/goto-symex/symex_assign.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void symex_assignt::assign_rec(
3838
const exprt &rhs,
3939
exprt::operandst &guard)
4040
{
41-
if(lhs.id() == ID_symbol && lhs.get_bool(ID_C_SSA_symbol))
41+
if(is_ssa_expr(lhs))
4242
{
4343
assign_symbol(to_ssa_expr(lhs), full_lhs, rhs, guard);
4444
}

src/goto-symex/symex_clean_expr.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,8 @@ process_array_expr(exprt &expr, bool do_simplify, const namespacet &ns)
6060
expr.swap(tmp);
6161
process_array_expr(expr, do_simplify, ns);
6262
}
63-
else if(expr.id()==ID_symbol &&
64-
expr.get_bool(ID_C_SSA_symbol) &&
65-
to_ssa_expr(expr).get_original_expr().id()==ID_index)
63+
else if(
64+
is_ssa_expr(expr) && to_ssa_expr(expr).get_original_expr().id() == ID_index)
6665
{
6766
const ssa_exprt &ssa=to_ssa_expr(expr);
6867
const index_exprt &index_expr=to_index_expr(ssa.get_original_expr());

src/goto-symex/symex_dereference.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,7 @@ exprt goto_symext::address_arithmetic(
139139

140140
// handle field-sensitive SSA symbol
141141
mp_integer offset=0;
142-
if(expr.id()==ID_symbol &&
143-
expr.get_bool(ID_C_SSA_symbol))
142+
if(is_ssa_expr(expr))
144143
{
145144
auto offset_opt = compute_pointer_offset(expr, ns);
146145
PRECONDITION(offset_opt.has_value());

src/goto-symex/symex_dereference_state.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ Author: Daniel Kroening, kroening@kroening.com
3030
const symbolt *
3131
symex_dereference_statet::get_or_create_failed_symbol(const exprt &expr)
3232
{
33-
if(expr.id()==ID_symbol &&
34-
expr.get_bool(ID_C_SSA_symbol))
33+
if(is_ssa_expr(expr))
3534
{
3635
const ssa_exprt &ssa_expr=to_ssa_expr(expr);
3736
if(ssa_expr.get_original_expr().id()!=ID_symbol)

src/util/validate_expressions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ void call_on_expr(const exprt &expr, Args &&... args)
3333
{
3434
CALL_ON_EXPR(plus_exprt);
3535
}
36-
else if(expr.get_bool(ID_C_SSA_symbol))
36+
else if(is_ssa_expr(expr))
3737
{
3838
CALL_ON_EXPR(ssa_exprt);
3939
}

0 commit comments

Comments
 (0)