Skip to content

Commit 1a2c14b

Browse files
authored
Merge pull request diffblue#1722 from diffblue/unsafe_type_constructors
Unsafe type constructors
2 parents 957a568 + 9c5add4 commit 1a2c14b

File tree

5 files changed

+9
-29
lines changed

5 files changed

+9
-29
lines changed

src/ansi-c/padding.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,8 @@ void add_padding(struct_typet &type, const namespacet &ns)
225225
{
226226
mp_integer pad=a-displacement;
227227

228-
unsignedbv_typet padding_type;
229-
padding_type.set_width(integer2unsigned(pad*8));
228+
std::size_t width=integer2size_t(pad*8);
229+
unsignedbv_typet padding_type(width);
230230

231231
struct_typet::componentt component;
232232
component.type()=padding_type;
@@ -282,8 +282,8 @@ void add_padding(struct_typet &type, const namespacet &ns)
282282
{
283283
mp_integer pad=max_alignment-displacement;
284284

285-
unsignedbv_typet padding_type;
286-
padding_type.set_width(integer2unsigned(pad*8));
285+
std::size_t width=integer2size_t(pad*8);
286+
unsignedbv_typet padding_type(width);
287287

288288
// we insert after any final 'flexible member'
289289
struct_typet::componentt component;
@@ -324,8 +324,8 @@ void add_padding(union_typet &type, const namespacet &ns)
324324
mp_integer padding_bits=
325325
max_alignment_bits-(size_bits%max_alignment_bits);
326326

327-
unsignedbv_typet padding_type;
328-
padding_type.set_width(integer2size_t(size_bits+padding_bits));
327+
unsignedbv_typet padding_type(
328+
integer2size_t(size_bits+padding_bits));
329329

330330
struct_typet::componentt component;
331331
component.type()=padding_type;

src/solvers/flattening/boolbv_extractbit.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ literalt boolbvt::convert_extractbit(const extractbit_exprt &expr)
5555
mp_integer index_width=
5656
std::max(address_bits(width_op0), mp_integer(width_op1));
5757

58-
unsignedbv_typet index_type;
59-
index_type.set_width(integer2unsigned(index_width));
58+
unsignedbv_typet index_type(integer2size_t(index_width));
6059

6160
equal_exprt equality;
6261
equality.lhs()=operands[1]; // index operand

src/solvers/smt1/smt1_conv.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,7 @@ exprt smt1_convt::ce_value(
234234

235235
typet smt1_convt::array_index_type() const
236236
{
237-
signedbv_typet t;
238-
t.set_width(array_index_bits);
239-
return t;
237+
return signedbv_typet(array_index_bits);
240238
}
241239

242240
void smt1_convt::array_index(const exprt &expr)

src/solvers/smt2/smt2_conv.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,8 +550,7 @@ void smt2_convt::convert_address_of_rec(
550550
mp_integer offset=member_offset(struct_type, component_name, ns);
551551
assert(offset>=0);
552552

553-
unsignedbv_typet index_type;
554-
index_type.set_width(boolbv_width(result_type));
553+
unsignedbv_typet index_type(boolbv_width(result_type));
555554

556555
// pointer arithmetic
557556
out << "(bvadd ";

src/util/std_types.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,10 +1134,6 @@ inline bitvector_typet &to_bitvector_type(typet &type)
11341134
class bv_typet:public bitvector_typet
11351135
{
11361136
public:
1137-
bv_typet():bitvector_typet(ID_bv)
1138-
{
1139-
}
1140-
11411137
explicit bv_typet(std::size_t width):bitvector_typet(ID_bv)
11421138
{
11431139
set_width(width);
@@ -1174,10 +1170,6 @@ inline bv_typet &to_bv_type(typet &type)
11741170
class unsignedbv_typet:public bitvector_typet
11751171
{
11761172
public:
1177-
unsignedbv_typet():bitvector_typet(ID_unsignedbv)
1178-
{
1179-
}
1180-
11811173
explicit unsignedbv_typet(std::size_t width):
11821174
bitvector_typet(ID_unsignedbv, width)
11831175
{
@@ -1220,10 +1212,6 @@ inline unsignedbv_typet &to_unsignedbv_type(typet &type)
12201212
class signedbv_typet:public bitvector_typet
12211213
{
12221214
public:
1223-
signedbv_typet():bitvector_typet(ID_signedbv)
1224-
{
1225-
}
1226-
12271215
explicit signedbv_typet(std::size_t width):
12281216
bitvector_typet(ID_signedbv, width)
12291217
{
@@ -1343,10 +1331,6 @@ inline const floatbv_typet &to_floatbv_type(const typet &type)
13431331
class c_bit_field_typet:public bitvector_typet
13441332
{
13451333
public:
1346-
c_bit_field_typet():bitvector_typet(ID_c_bit_field)
1347-
{
1348-
}
1349-
13501334
explicit c_bit_field_typet(const typet &subtype, std::size_t width):
13511335
bitvector_typet(ID_c_bit_field, subtype, width)
13521336
{

0 commit comments

Comments
 (0)