17
17
18
18
literalt boolbvt::convert_extractbit (const extractbit_exprt &expr)
19
19
{
20
- const bvt &bv0 = convert_bv (expr.src ());
20
+ const bvt &src_bv = convert_bv (expr.src ());
21
21
22
22
// constant?
23
23
if (expr.index ().is_constant ())
24
24
{
25
- mp_integer o ;
25
+ mp_integer index_as_integer ;
26
26
27
- if (to_integer (expr.index (), o ))
27
+ if (to_integer (expr.index (), index_as_integer ))
28
28
throw " extractbit failed to convert constant index" ;
29
29
30
- if (o< 0 || o>=bv0 .size ())
30
+ if (index_as_integer < 0 || index_as_integer >= src_bv .size ())
31
31
return prop.new_variable (); // out of range!
32
32
else
33
- return bv0 [integer2size_t (o )];
33
+ return src_bv [integer2size_t (index_as_integer )];
34
34
}
35
35
36
36
if (
@@ -42,13 +42,14 @@ literalt boolbvt::convert_extractbit(const extractbit_exprt &expr)
42
42
}
43
43
else
44
44
{
45
- std::size_t width_op0 = boolbv_width (expr.src ().type ());
46
- std::size_t width_op1 = boolbv_width (expr.index ().type ());
45
+ std::size_t src_bv_width = boolbv_width (expr.src ().type ());
46
+ std::size_t index_bv_width = boolbv_width (expr.index ().type ());
47
47
48
- if (width_op0== 0 || width_op1== 0 )
48
+ if (src_bv_width == 0 || index_bv_width == 0 )
49
49
return SUB::convert_rest (expr);
50
50
51
- std::size_t index_width = std::max (address_bits (width_op0), width_op1);
51
+ std::size_t index_width =
52
+ std::max (address_bits (src_bv_width), index_bv_width);
52
53
unsignedbv_typet index_type (index_width);
53
54
54
55
equal_exprt equality;
@@ -60,29 +61,29 @@ literalt boolbvt::convert_extractbit(const extractbit_exprt &expr)
60
61
if (prop.has_set_to ())
61
62
{
62
63
// free variable
63
- literalt l= prop.new_variable ();
64
+ literalt literal = prop.new_variable ();
64
65
65
66
// add implications
66
- for (std::size_t i= 0 ; i<bv0 .size (); i++)
67
+ for (std::size_t i = 0 ; i < src_bv .size (); i++)
67
68
{
68
69
equality.rhs ()=from_integer (i, index_type);
69
- literalt equal= prop.lequal (l, bv0 [i]);
70
+ literalt equal = prop.lequal (literal, src_bv [i]);
70
71
prop.l_set_to_true (prop.limplies (convert (equality), equal));
71
72
}
72
73
73
- return l ;
74
+ return literal ;
74
75
}
75
76
else
76
77
{
77
- literalt l= prop.new_variable ();
78
+ literalt literal = prop.new_variable ();
78
79
79
- for (std::size_t i= 0 ; i<bv0 .size (); i++)
80
+ for (std::size_t i = 0 ; i < src_bv .size (); i++)
80
81
{
81
82
equality.rhs ()=from_integer (i, index_type);
82
- l= prop.lselect (convert (equality), bv0 [i], l );
83
+ literal = prop.lselect (convert (equality), src_bv [i], literal );
83
84
}
84
85
85
- return l ;
86
+ return literal ;
86
87
}
87
88
}
88
89
0 commit comments