Skip to content

Commit 59f9e73

Browse files
authored
Merge pull request #3051 from tautschnig/integer2size_t
Use numeric_cast_v<std::size_t> instead of deprecated integer2size_t [blocks: #2310]
2 parents 5187d57 + fe3f73c commit 59f9e73

25 files changed

+99
-82
lines changed

src/analyses/goto_rw.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ void rw_range_sett::get_objects_byte_extract(
164164
be.id()==ID_byte_extract_little_endian,
165165
ns);
166166
assert(index<std::numeric_limits<size_t>::max());
167-
range_spect offset=range_start + map.map_bit(integer2size_t(index));
167+
range_spect offset =
168+
range_start + map.map_bit(numeric_cast_v<std::size_t>(index));
168169
get_objects_rec(mode, be.op(), offset, size);
169170
}
170171
}

src/ansi-c/c_typecheck_initializer.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ exprt c_typecheck_baset::do_initializer_rec(
107107
if(mp_integer(tmp.operands().size())>array_size)
108108
{
109109
// cut off long strings. gcc does a warning for this
110-
tmp.operands().resize(integer2size_t(array_size));
110+
tmp.operands().resize(numeric_cast_v<std::size_t>(array_size));
111111
tmp.type()=type;
112112
}
113113
else if(mp_integer(tmp.operands().size())<array_size)
@@ -123,7 +123,7 @@ exprt c_typecheck_baset::do_initializer_rec(
123123
<< to_string(full_type.subtype()) << "'" << eom;
124124
throw 0;
125125
}
126-
tmp.operands().resize(integer2size_t(array_size), *zero);
126+
tmp.operands().resize(numeric_cast_v<std::size_t>(array_size), *zero);
127127
}
128128
}
129129

@@ -167,7 +167,7 @@ exprt c_typecheck_baset::do_initializer_rec(
167167
if(mp_integer(tmp2.operands().size())>array_size)
168168
{
169169
// cut off long strings. gcc does a warning for this
170-
tmp2.operands().resize(integer2size_t(array_size));
170+
tmp2.operands().resize(numeric_cast_v<std::size_t>(array_size));
171171
tmp2.type()=type;
172172
}
173173
else if(mp_integer(tmp2.operands().size())<array_size)
@@ -183,7 +183,7 @@ exprt c_typecheck_baset::do_initializer_rec(
183183
<< to_string(full_type.subtype()) << "'" << eom;
184184
throw 0;
185185
}
186-
tmp2.operands().resize(integer2size_t(array_size), *zero);
186+
tmp2.operands().resize(numeric_cast_v<std::size_t>(array_size), *zero);
187187
}
188188
}
189189

@@ -323,7 +323,7 @@ void c_typecheck_baset::designator_enter(
323323
throw 0;
324324
}
325325

326-
entry.size=integer2size_t(array_size);
326+
entry.size = numeric_cast_v<std::size_t>(array_size);
327327
entry.subtype=array_type.subtype();
328328
}
329329
}
@@ -341,7 +341,7 @@ void c_typecheck_baset::designator_enter(
341341
throw 0;
342342
}
343343

344-
entry.size=integer2size_t(vector_size);
344+
entry.size = numeric_cast_v<std::size_t>(vector_size);
345345
entry.subtype=vector_type.subtype();
346346
}
347347
else
@@ -410,7 +410,8 @@ exprt::operandst::const_iterator c_typecheck_baset::do_designated_initializer(
410410
<< to_string(full_type.subtype()) << "'" << eom;
411411
throw 0;
412412
}
413-
dest->operands().resize(integer2size_t(index) + 1, *zero);
413+
dest->operands().resize(
414+
numeric_cast_v<std::size_t>(index) + 1, *zero);
414415

415416
// todo: adjust type!
416417
}
@@ -424,7 +425,7 @@ exprt::operandst::const_iterator c_typecheck_baset::do_designated_initializer(
424425
}
425426
}
426427

427-
dest=&(dest->operands()[integer2size_t(index)]);
428+
dest = &(dest->operands()[numeric_cast_v<std::size_t>(index)]);
428429
}
429430
else if(full_type.id()==ID_struct)
430431
{
@@ -730,8 +731,8 @@ designatort c_typecheck_baset::make_designator(
730731
throw 0;
731732
}
732733

733-
entry.index=integer2size_t(index);
734-
entry.size=integer2size_t(size);
734+
entry.index = numeric_cast_v<std::size_t>(index);
735+
entry.size = numeric_cast_v<std::size_t>(size);
735736
entry.subtype=full_type.subtype();
736737
}
737738
else if(full_type.id()==ID_struct ||

src/ansi-c/c_typecheck_type.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1378,7 +1378,7 @@ void c_typecheck_baset::typecheck_c_bit_field_type(c_bit_field_typet &type)
13781378
throw 0;
13791379
}
13801380

1381-
type.set_width(integer2size_t(i));
1381+
type.set_width(numeric_cast_v<std::size_t>(i));
13821382
type.remove(ID_size);
13831383
}
13841384

src/ansi-c/padding.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ static void add_padding_msvc(struct_typet &type, const namespacet &ns)
214214
{
215215
const mp_integer pad_bytes = a - displacement;
216216
std::size_t pad_bits =
217-
integer2size_t(pad_bytes * config.ansi_c.char_width);
217+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
218218
it = pad(components, it, pad_bits);
219219
offset += pad_bytes;
220220
}
@@ -262,7 +262,7 @@ static void add_padding_msvc(struct_typet &type, const namespacet &ns)
262262
{
263263
const mp_integer pad_bytes = a - displacement;
264264
const std::size_t pad_bits =
265-
integer2size_t(pad_bytes * config.ansi_c.char_width);
265+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
266266
pad(components, components.end(), pad_bits);
267267
offset += pad_bytes;
268268
}
@@ -392,7 +392,7 @@ static void add_padding_gcc(struct_typet &type, const namespacet &ns)
392392
{
393393
const mp_integer pad_bytes = a - displacement;
394394
const std::size_t pad_bits =
395-
integer2size_t(pad_bytes * config.ansi_c.char_width);
395+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
396396
it = pad(components, it, pad_bits);
397397
offset += pad_bytes;
398398
}
@@ -433,7 +433,7 @@ static void add_padding_gcc(struct_typet &type, const namespacet &ns)
433433
{
434434
mp_integer pad_bytes = max_alignment - displacement;
435435
std::size_t pad_bits =
436-
integer2size_t(pad_bytes * config.ansi_c.char_width);
436+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
437437
pad(components, components.end(), pad_bits);
438438
}
439439
}
@@ -491,7 +491,7 @@ void add_padding(union_typet &type, const namespacet &ns)
491491
max_alignment_bits-(size_bits%max_alignment_bits);
492492

493493
unsignedbv_typet padding_type(
494-
integer2size_t(size_bits+padding_bits));
494+
numeric_cast_v<std::size_t>(size_bits + padding_bits));
495495

496496
struct_typet::componentt component;
497497
component.type()=padding_type;

src/goto-programs/interpreter.cpp

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ exprt interpretert::get_value(
501501
}
502502

503503
// Retrieve the value for each member in the array
504-
result.reserve_operands(integer2size_t(count));
504+
result.reserve_operands(numeric_cast_v<std::size_t>(count));
505505
for(mp_integer i=0; i<count; ++i)
506506
{
507507
const exprt operand=get_value(
@@ -568,7 +568,7 @@ exprt interpretert::get_value(
568568
}
569569

570570
// Retrieve the value for each member in the array
571-
result.reserve_operands(integer2size_t(count));
571+
result.reserve_operands(numeric_cast_v<std::size_t>(count));
572572
for(mp_integer i=0; i<count; ++i)
573573
{
574574
const exprt operand=get_value(type.subtype(), rhs,
@@ -580,35 +580,36 @@ exprt interpretert::get_value(
580580
else if(real_type.id()==ID_floatbv)
581581
{
582582
ieee_floatt f(to_floatbv_type(type));
583-
f.unpack(rhs[integer2size_t(offset)]);
583+
f.unpack(rhs[numeric_cast_v<std::size_t>(offset)]);
584584
return f.to_expr();
585585
}
586586
else if(real_type.id()==ID_fixedbv)
587587
{
588588
fixedbvt f;
589-
f.from_integer(rhs[integer2size_t(offset)]);
589+
f.from_integer(rhs[numeric_cast_v<std::size_t>(offset)]);
590590
return f.to_expr();
591591
}
592592
else if(real_type.id()==ID_bool)
593593
{
594-
if(rhs[integer2size_t(offset)]!=0)
594+
if(rhs[numeric_cast_v<std::size_t>(offset)] != 0)
595595
return true_exprt();
596596
else
597597
false_exprt();
598598
}
599599
else if(real_type.id()==ID_c_bool)
600600
{
601-
return from_integer(rhs[integer2size_t(offset)]!=0?1:0, type);
601+
return from_integer(
602+
rhs[numeric_cast_v<std::size_t>(offset)] != 0 ? 1 : 0, type);
602603
}
603604
else if(real_type.id() == ID_pointer)
604605
{
605-
if(rhs[integer2size_t(offset)]==0)
606+
if(rhs[numeric_cast_v<std::size_t>(offset)] == 0)
606607
return null_pointer_exprt(to_pointer_type(real_type)); // NULL pointer
607608

608-
if(rhs[integer2size_t(offset)]<memory.size())
609+
if(rhs[numeric_cast_v<std::size_t>(offset)] < memory.size())
609610
{
610611
// We want the symbol pointed to
611-
mp_integer address=rhs[integer2size_t(offset)];
612+
mp_integer address = rhs[numeric_cast_v<std::size_t>(offset)];
612613
irep_idt identifier=address_to_identifier(address);
613614
mp_integer offset=address_to_offset(address);
614615
const typet type=get_type(identifier);
@@ -631,16 +632,18 @@ exprt interpretert::get_value(
631632
return std::move(index_expr);
632633
}
633634

634-
error() << "interpreter: invalid pointer " << rhs[integer2size_t(offset)]
635-
<< " > object count " << memory.size() << eom;
635+
error() << "interpreter: invalid pointer "
636+
<< rhs[numeric_cast_v<std::size_t>(offset)] << " > object count "
637+
<< memory.size() << eom;
636638

637639
throw "interpreter: reading from invalid pointer";
638640
}
639641
else if(real_type.id()==ID_string)
640642
{
641643
// Strings are currently encoded by their irep_idt ID.
642644
return constant_exprt(
643-
get_string_container().get_string(rhs[integer2size_t(offset)].to_long()),
645+
get_string_container().get_string(
646+
numeric_cast_v<std::size_t>(rhs[numeric_cast_v<std::size_t>(offset)])),
644647
type);
645648
}
646649

@@ -680,8 +683,8 @@ void interpretert::execute_assign()
680683
side_effect_exprt side_effect=to_side_effect_expr(code_assign.rhs());
681684
if(side_effect.get_statement()==ID_nondet)
682685
{
683-
mp_integer address=
684-
integer2size_t(evaluate_address(code_assign.lhs()));
686+
mp_integer address =
687+
numeric_cast_v<std::size_t>(evaluate_address(code_assign.lhs()));
685688

686689
mp_integer size=
687690
get_size(code_assign.lhs().type());
@@ -710,11 +713,11 @@ void interpretert::assign(
710713
{
711714
status() << total_steps << " ** assigning "
712715
<< address_to_identifier(address_val) << "["
713-
<< address_to_offset(address_val) << "]:="
714-
<< rhs[integer2size_t(i)]
715-
<< "\n" << eom;
716+
<< address_to_offset(address_val)
717+
<< "]:=" << rhs[numeric_cast_v<std::size_t>(i)] << "\n"
718+
<< eom;
716719
}
717-
cell.value=rhs[integer2size_t(i)];
720+
cell.value = rhs[numeric_cast_v<std::size_t>(i)];
718721
if(cell.initialized==memory_cellt::initializedt::UNKNOWN)
719722
cell.initialized=memory_cellt::initializedt::WRITTEN_BEFORE_READ;
720723
}

src/goto-programs/interpreter_evaluate.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void interpretert::read_unbounded(
5050
mp_vectort &dest) const
5151
{
5252
// copy memory region
53-
std::size_t address_val=integer2size_t(address);
53+
std::size_t address_val = numeric_cast_v<std::size_t>(address);
5454
const mp_integer offset=address_to_offset(address_val);
5555
const mp_integer alloc_size=
5656
base_address_to_actual_size(address_val-offset);
@@ -61,7 +61,8 @@ void interpretert::read_unbounded(
6161

6262
if((address+i)<memory.size())
6363
{
64-
const memory_cellt &cell=memory[integer2size_t(address+i)];
64+
const memory_cellt &cell =
65+
memory[numeric_cast_v<std::size_t>(address + i)];
6566
value=cell.value;
6667
if(cell.initialized==memory_cellt::initializedt::UNKNOWN)
6768
cell.initialized=memory_cellt::initializedt::READ_BEFORE_WRITTEN;
@@ -315,7 +316,7 @@ void interpretert::evaluate(
315316
{
316317
if(expr.type().id()==ID_struct)
317318
{
318-
dest.reserve(integer2size_t(get_size(expr.type())));
319+
dest.reserve(numeric_cast_v<std::size_t>(get_size(expr.type())));
319320
bool error=false;
320321

321322
forall_operands(it, expr)
@@ -418,7 +419,7 @@ void interpretert::evaluate(
418419
else if(expr.id()==ID_struct)
419420
{
420421
if(!unbounded_size(expr.type()))
421-
dest.reserve(integer2size_t(get_size(expr.type())));
422+
dest.reserve(numeric_cast_v<std::size_t>(get_size(expr.type())));
422423

423424
bool error=false;
424425

@@ -959,7 +960,7 @@ void interpretert::evaluate(
959960
{
960961
if(!unbounded_size(expr.type()))
961962
{
962-
dest.resize(integer2size_t(get_size(expr.type())));
963+
dest.resize(numeric_cast_v<std::size_t>(get_size(expr.type())));
963964
read(address, dest);
964965
}
965966
else
@@ -1026,7 +1027,7 @@ void interpretert::evaluate(
10261027

10271028
if(size.size()==1)
10281029
{
1029-
std::size_t size_int=integer2size_t(size[0]);
1030+
std::size_t size_int = numeric_cast_v<std::size_t>(size[0]);
10301031
for(std::size_t i=0; i<size_int; ++i)
10311032
evaluate(expr.op0(), dest);
10321033
return;
@@ -1052,10 +1053,11 @@ void interpretert::evaluate(
10521053
mp_integer need_size=(where_idx+1)*subtype_size;
10531054

10541055
if(dest.size()<need_size)
1055-
dest.resize(integer2size_t(need_size), 0);
1056+
dest.resize(numeric_cast_v<std::size_t>(need_size), 0);
10561057

10571058
for(std::size_t i=0; i<new_value.size(); ++i)
1058-
dest[integer2size_t((where_idx*subtype_size)+i)]=new_value[i];
1059+
dest[numeric_cast_v<std::size_t>((where_idx * subtype_size) + i)] =
1060+
new_value[i];
10591061

10601062
return;
10611063
}

src/goto-programs/remove_const_function_pointers.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,8 +537,8 @@ bool remove_const_function_pointerst::try_resolve_index_of(
537537
if(try_resolve_index_value(index_expr.index(), value))
538538
{
539539
expressionst array_out_functions;
540-
const exprt &func_expr=
541-
potential_array_expr.operands()[integer2size_t(value)];
540+
const exprt &func_expr =
541+
potential_array_expr.operands()[numeric_cast_v<std::size_t>(value)];
542542
bool value_const=false;
543543
bool resolved_value=
544544
try_resolve_expression(func_expr, array_out_functions, value_const);

src/goto-programs/remove_vector.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ static void remove_vector(exprt &expr)
9898
// do component-wise:
9999
// x+y -> vector(x[0]+y[0],x[1]+y[1],...)
100100
array_exprt array_expr(array_type);
101-
array_expr.operands().resize(integer2size_t(dimension));
101+
array_expr.operands().resize(numeric_cast_v<std::size_t>(dimension));
102102

103103
for(std::size_t i=0; i<array_expr.operands().size(); i++)
104104
{
@@ -125,7 +125,7 @@ static void remove_vector(exprt &expr)
125125
// do component-wise:
126126
// -x -> vector(-x[0],-x[1],...)
127127
array_exprt array_expr(array_type);
128-
array_expr.operands().resize(integer2size_t(dimension));
128+
array_expr.operands().resize(numeric_cast_v<std::size_t>(dimension));
129129

130130
for(std::size_t i=0; i<array_expr.operands().size(); i++)
131131
{

src/goto-programs/vcd_goto_trace.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Date: June 2011
1515

1616
#include <ctime>
1717

18+
#include <util/arith_tools.h>
1819
#include <util/numbering.h>
1920
#include <util/pointer_offset_size.h>
2021

@@ -62,7 +63,7 @@ std::string as_vcd_binary(
6263
const auto width = pointer_offset_bits(type, ns);
6364

6465
if(width.has_value())
65-
return std::string(integer2size_t(*width), 'x');
66+
return std::string(numeric_cast_v<std::size_t>(*width), 'x');
6667
else
6768
return "";
6869
}

src/solvers/flattening/boolbv_byte_update.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ bvt boolbvt::convert_byte_update(const byte_update_exprt &expr)
5353
if(little_endian)
5454
{
5555
for(std::size_t i=0; i<update_width; i++)
56-
bv[integer2size_t(offset+i)]=value_bv[i];
56+
bv[numeric_cast_v<std::size_t>(offset + i)] = value_bv[i];
5757
}
5858
else
5959
{

0 commit comments

Comments
 (0)