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)
20612061 assert (el_size%8 ==0 );
20622062 mp_integer el_bytes=el_size/8 ;
20632063
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))
20652067 {
20662068 if (offset%el_bytes==0 )
20672069 {
@@ -2071,6 +2073,7 @@ bool simplify_exprt::simplify_byte_extract(byte_extract_exprt &expr)
20712073 index_exprt (
20722074 result,
20732075 from_integer (offset, expr.offset ().type ()));
2076+ result.make_typecast (expr.type ());
20742077
20752078 expr.swap (result);
20762079 simplify_rec (expr);
@@ -2128,7 +2131,7 @@ bool simplify_exprt::simplify_byte_extract(byte_extract_exprt &expr)
21282131 simplify_member (expr.op ());
21292132 expr.offset ()=
21302133 from_integer (offset-m_offset_bits/8 , expr.offset ().type ());
2131- simplify_rec (expr. offset () );
2134+ simplify_rec (expr);
21322135
21332136 return false ;
21342137 }
You can’t perform that action at this time.
0 commit comments