@@ -82,22 +82,29 @@ void rw_range_sett::output(std::ostream &out) const
82
82
}
83
83
}
84
84
85
- void rw_range_sett::get_objects_complex (
85
+ void rw_range_sett::get_objects_complex_real (
86
86
get_modet mode,
87
- const exprt &expr,
87
+ const complex_real_exprt &expr,
88
88
const range_spect &range_start,
89
89
const range_spect &size)
90
90
{
91
- const exprt &op= expr.op0 ( );
92
- assert (op. type (). id ()==ID_complex);
91
+ get_objects_rec (mode, expr.op (), range_start, size );
92
+ }
93
93
94
- range_spect sub_size=
94
+ void rw_range_sett::get_objects_complex_imag (
95
+ get_modet mode,
96
+ const complex_imag_exprt &expr,
97
+ const range_spect &range_start,
98
+ const range_spect &size)
99
+ {
100
+ const exprt &op = expr.op ();
101
+
102
+ range_spect sub_size =
95
103
to_range_spect (pointer_offset_bits (op.type ().subtype (), ns));
96
104
assert (sub_size>0 );
97
- range_spect offset=
98
- (range_start==-1 || expr.id ()==ID_complex_real) ? 0 : sub_size;
105
+ range_spect offset = range_start == -1 ? 0 : sub_size;
99
106
100
- get_objects_rec (mode, op, range_start+ offset, size);
107
+ get_objects_rec (mode, op, range_start + offset, size);
101
108
}
102
109
103
110
void rw_range_sett::get_objects_if (
@@ -487,9 +494,10 @@ void rw_range_sett::get_objects_rec(
487
494
const range_spect &range_start,
488
495
const range_spect &size)
489
496
{
490
- if (expr.id ()==ID_complex_real ||
491
- expr.id ()==ID_complex_imag)
492
- get_objects_complex (mode, expr, range_start, size);
497
+ if (expr.id () == ID_complex_real)
498
+ get_objects_complex_real (mode, to_complex_real_expr (expr), range_start, size);
499
+ else if (expr.id () == ID_complex_imag)
500
+ get_objects_complex_imag (mode, to_complex_imag_expr (expr), range_start, size);
493
501
else if (expr.id ()==ID_typecast)
494
502
get_objects_typecast (
495
503
mode,
0 commit comments