|
15 | 15 | #include "pointer_offset_size.h" |
16 | 16 | #include "std_expr.h" |
17 | 17 |
|
18 | | -simplify_exprt::resultt<> simplify_exprt::simplify_member(const exprt &expr) |
| 18 | +simplify_exprt::resultt<> |
| 19 | +simplify_exprt::simplify_member(const member_exprt &expr) |
19 | 20 | { |
20 | | - if(expr.operands().size()!=1) |
21 | | - return unchanged(expr); |
22 | | - |
23 | 21 | const irep_idt &component_name= |
24 | 22 | to_member_expr(expr).get_component_name(); |
25 | 23 |
|
26 | | - const exprt &op = expr.op0(); |
| 24 | + const exprt &op = expr.struct_op(); |
27 | 25 | const typet &op_type=ns.follow(op.type()); |
28 | 26 |
|
29 | 27 | if(op.id()==ID_with) |
@@ -60,7 +58,7 @@ simplify_exprt::resultt<> simplify_exprt::simplify_member(const exprt &expr) |
60 | 58 | DATA_INVARIANT(new_operands.size() == 1, "post-condition of loop"); |
61 | 59 |
|
62 | 60 | auto new_member_expr = expr; |
63 | | - new_member_expr.op0() = new_operands.front(); |
| 61 | + new_member_expr.struct_op() = new_operands.front(); |
64 | 62 | // do this recursively |
65 | 63 | return simplify_member(new_member_expr); |
66 | 64 | } |
@@ -104,7 +102,7 @@ simplify_exprt::resultt<> simplify_exprt::simplify_member(const exprt &expr) |
104 | 102 | { |
105 | 103 | // UPDATE(s, .m1, v).m2 -> s.m2 |
106 | 104 | auto new_expr = expr; |
107 | | - new_expr.op0() = update_expr.old(); |
| 105 | + new_expr.struct_op() = update_expr.old(); |
108 | 106 |
|
109 | 107 | // do this recursively |
110 | 108 | return changed(simplify_rec(new_expr)); |
@@ -211,7 +209,7 @@ simplify_exprt::resultt<> simplify_exprt::simplify_member(const exprt &expr) |
211 | 209 | if(op_type == op.op0().type()) |
212 | 210 | { |
213 | 211 | auto new_expr = expr; |
214 | | - new_expr.op0() = op.op0(); |
| 212 | + new_expr.struct_op() = op.op0(); |
215 | 213 | return simplify_member(new_expr); |
216 | 214 | } |
217 | 215 |
|
|
0 commit comments