File tree Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -2061,7 +2061,9 @@ bool simplify_exprt::simplify_byte_extract(byte_extract_exprt &expr)
2061
2061
assert (el_size%8 ==0 );
2062
2062
mp_integer el_bytes=el_size/8 ;
2063
2063
2064
- if (base_type_eq (expr.type (), op_type_ptr->subtype (), ns))
2064
+ if (base_type_eq (expr.type (), op_type_ptr->subtype (), ns) ||
2065
+ (expr.type ().id ()==ID_pointer &&
2066
+ op_type_ptr->subtype ().id ()==ID_pointer))
2065
2067
{
2066
2068
if (offset%el_bytes==0 )
2067
2069
{
@@ -2071,6 +2073,7 @@ bool simplify_exprt::simplify_byte_extract(byte_extract_exprt &expr)
2071
2073
index_exprt (
2072
2074
result,
2073
2075
from_integer (offset, expr.offset ().type ()));
2076
+ result.make_typecast (expr.type ());
2074
2077
2075
2078
expr.swap (result);
2076
2079
simplify_rec (expr);
@@ -2128,7 +2131,7 @@ bool simplify_exprt::simplify_byte_extract(byte_extract_exprt &expr)
2128
2131
simplify_member (expr.op ());
2129
2132
expr.offset ()=
2130
2133
from_integer (offset-m_offset_bits/8 , expr.offset ().type ());
2131
- simplify_rec (expr. offset () );
2134
+ simplify_rec (expr);
2132
2135
2133
2136
return false ;
2134
2137
}
You can’t perform that action at this time.
0 commit comments