Skip to content

Commit 20adc25

Browse files
author
Daniel Kroening
committed
allow address_of of byte_extract expressions
1 parent 0f1482c commit 20adc25

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/solvers/flattening/bv_pointers.cpp

+15
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,21 @@ bool bv_pointerst::convert_address_of_rec(
158158
POSTCONDITION(bv.size()==bits);
159159
return false;
160160
}
161+
else if(expr.id()==ID_byte_extract_little_endian ||
162+
expr.id()==ID_byte_extract_big_endian)
163+
{
164+
const auto &byte_extract_expr=to_byte_extract_expr(expr);
165+
166+
// recursive call
167+
if(convert_address_of_rec(byte_extract_expr.op(), bv))
168+
return true;
169+
170+
POSTCONDITION(bv.size()==bits);
171+
172+
offset_arithmetic(bv, 1, byte_extract_expr.offset());
173+
POSTCONDITION(bv.size()==bits);
174+
return false;
175+
}
161176
else if(expr.id()==ID_member)
162177
{
163178
const member_exprt &member_expr=to_member_expr(expr);

0 commit comments

Comments
 (0)