@@ -26,26 +26,20 @@ literalt boolbvt::convert_binary_overflow(const binary_overflow_exprt &expr)
26
26
? bv_utilst::representationt::SIGNED
27
27
: bv_utilst::representationt::UNSIGNED;
28
28
29
- const auto plus_or_minus_conversion =
30
- [&](
31
- const binary_overflow_exprt &overflow_expr,
32
- const std::function<literalt (
33
- bv_utilst *, const bvt &, const bvt &, bv_utilst::representationt)>
34
- &bv_util_overflow) {
35
-
36
- if (bv0.size () != bv1.size ())
37
- return SUB::convert_rest (expr);
38
-
39
- return bv_util_overflow (&bv_utils, bv0, bv1, rep);
40
- };
41
29
if (
42
30
const auto plus_overflow = expr_try_dynamic_cast<plus_overflow_exprt>(expr))
43
31
{
44
- return plus_or_minus_conversion (*plus_overflow, &bv_utilst::overflow_add);
32
+ if (bv0.size () != bv1.size ())
33
+ return SUB::convert_rest (expr);
34
+
35
+ return bv_utils.overflow_add (bv0, bv1, rep);
45
36
}
46
37
if (const auto minus = expr_try_dynamic_cast<minus_overflow_exprt>(expr))
47
38
{
48
- return plus_or_minus_conversion (*minus, &bv_utilst::overflow_sub);
39
+ if (bv0.size () != bv1.size ())
40
+ return SUB::convert_rest (expr);
41
+
42
+ return bv_utils.overflow_sub (bv0, bv1, rep);
49
43
}
50
44
else if (
51
45
const auto mult_overflow = expr_try_dynamic_cast<mult_overflow_exprt>(expr))
0 commit comments