11
11
12
12
bvt boolbvt::convert_bitwise (const exprt &expr)
13
13
{
14
- std::size_t width=boolbv_width (expr.type ());
15
-
14
+ const std::size_t width = boolbv_width (expr.type ());
16
15
if (width==0 )
17
16
return conversion_failed (expr);
18
17
19
18
if (expr.id ()==ID_bitnot)
20
19
{
21
- if (expr.operands ().size ()!=1 )
22
- throw " bitnot takes one operand" ;
23
-
20
+ DATA_INVARIANT (expr.operands ().size () == 1 , " bitnot takes one operand" );
24
21
const exprt &op0=expr.op0 ();
25
-
26
22
const bvt &op_bv=convert_bv (op0);
27
-
28
- if (op_bv.size ()!=width)
29
- throw " convert_bitwise: unexpected operand width" ;
30
-
23
+ CHECK_RETURN (op_bv.size () == width);
31
24
return bv_utils.inverted (op_bv);
32
25
}
33
26
else if (expr.id ()==ID_bitand || expr.id ()==ID_bitor ||
@@ -41,9 +34,7 @@ bvt boolbvt::convert_bitwise(const exprt &expr)
41
34
forall_operands (it, expr)
42
35
{
43
36
const bvt &op=convert_bv (*it);
44
-
45
- if (op.size ()!=width)
46
- throw " convert_bitwise: unexpected operand width" ;
37
+ CHECK_RETURN (op.size () == width);
47
38
48
39
if (it==expr.operands ().begin ())
49
40
bv=op;
@@ -64,13 +55,13 @@ bvt boolbvt::convert_bitwise(const exprt &expr)
64
55
else if (expr.id ()==ID_bitxnor)
65
56
bv[i]=prop.lequal (bv[i], op[i]);
66
57
else
67
- throw " unexpected operand " ;
58
+ UNIMPLEMENTED ;
68
59
}
69
60
}
70
61
}
71
62
72
63
return bv;
73
64
}
74
65
75
- throw " unexpected bitwise operand " ;
66
+ UNIMPLEMENTED ;
76
67
}
0 commit comments