diff --git a/src/util/simplify_expr.cpp b/src/util/simplify_expr.cpp index 0f61cd9add4..c76585166c9 100644 --- a/src/util/simplify_expr.cpp +++ b/src/util/simplify_expr.cpp @@ -1660,8 +1660,10 @@ simplify_exprt::simplify_byte_extract(const byte_extract_exprt &expr) { auto tmp = expr; - tmp.offset() = simplify_plus( - plus_exprt(to_byte_extract_expr(expr.op()).offset(), expr.offset())); + tmp.offset() = simplify_rec(plus_exprt( + typecast_exprt::conditional_cast( + to_byte_extract_expr(expr.op()).offset(), expr.offset().type()), + expr.offset())); tmp.op() = to_byte_extract_expr(expr.op()).op(); return changed(simplify_byte_extract(tmp)); // recursive call