Skip to content

Commit 9cd404b

Browse files
committed
Use numeric_cast_v<std::size_t> instead of integer2size_t
integer2size_t is deprecated. Replacing it as recommended reduces the number of warnings emitted at build time and actually implements what deprecation is about.
1 parent 7bf48c0 commit 9cd404b

31 files changed

+112
-100
lines changed

jbmc/src/java_bytecode/java_bytecode_convert_method.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ const exprt java_bytecode_convert_methodt::variable(
214214
bool ret=to_integer(to_constant_expr(arg), number);
215215
CHECK_RETURN(!ret);
216216

217-
std::size_t number_int=integer2size_t(number);
217+
std::size_t number_int = numeric_cast_v<std::size_t>(number);
218218
typet t=java_type_from_char(type_char);
219219
variablest &var_list=variables[number_int];
220220

@@ -1623,7 +1623,7 @@ codet java_bytecode_convert_methodt::convert_instructions(
16231623
mp_integer number;
16241624
bool ret=to_integer(to_constant_expr(arg1), number);
16251625
INVARIANT(!ret, "multianewarray argument should be an integer");
1626-
std::size_t dimension=integer2size_t(number);
1626+
std::size_t dimension = numeric_cast_v<std::size_t>(number);
16271627

16281628
op=pop(dimension);
16291629
assert(results.size()==1);

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: 10 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)
@@ -120,7 +120,7 @@ exprt c_typecheck_baset::do_initializer_rec(
120120
value.source_location(),
121121
*this,
122122
get_message_handler());
123-
tmp.operands().resize(integer2size_t(array_size), zero);
123+
tmp.operands().resize(numeric_cast_v<std::size_t>(array_size), zero);
124124
}
125125
}
126126

@@ -164,7 +164,7 @@ exprt c_typecheck_baset::do_initializer_rec(
164164
if(mp_integer(tmp2.operands().size())>array_size)
165165
{
166166
// cut off long strings. gcc does a warning for this
167-
tmp2.operands().resize(integer2size_t(array_size));
167+
tmp2.operands().resize(numeric_cast_v<std::size_t>(array_size));
168168
tmp2.type()=type;
169169
}
170170
else if(mp_integer(tmp2.operands().size())<array_size)
@@ -177,7 +177,7 @@ exprt c_typecheck_baset::do_initializer_rec(
177177
value.source_location(),
178178
*this,
179179
get_message_handler());
180-
tmp2.operands().resize(integer2size_t(array_size), zero);
180+
tmp2.operands().resize(numeric_cast_v<std::size_t>(array_size), zero);
181181
}
182182
}
183183

@@ -317,7 +317,7 @@ void c_typecheck_baset::designator_enter(
317317
throw 0;
318318
}
319319

320-
entry.size=integer2size_t(array_size);
320+
entry.size = numeric_cast_v<std::size_t>(array_size);
321321
entry.subtype=array_type.subtype();
322322
}
323323
}
@@ -335,7 +335,7 @@ void c_typecheck_baset::designator_enter(
335335
throw 0;
336336
}
337337

338-
entry.size=integer2size_t(vector_size);
338+
entry.size = numeric_cast_v<std::size_t>(vector_size);
339339
entry.subtype=vector_type.subtype();
340340
}
341341
else
@@ -401,7 +401,7 @@ exprt::operandst::const_iterator c_typecheck_baset::do_designated_initializer(
401401
value.source_location(),
402402
*this,
403403
get_message_handler());
404-
dest->operands().resize(integer2size_t(index)+1, zero);
404+
dest->operands().resize(numeric_cast_v<std::size_t>(index) + 1, zero);
405405

406406
// todo: adjust type!
407407
}
@@ -415,7 +415,7 @@ exprt::operandst::const_iterator c_typecheck_baset::do_designated_initializer(
415415
}
416416
}
417417

418-
dest=&(dest->operands()[integer2size_t(index)]);
418+
dest = &(dest->operands()[numeric_cast_v<std::size_t>(index)]);
419419
}
420420
else if(full_type.id()==ID_struct)
421421
{
@@ -717,8 +717,8 @@ designatort c_typecheck_baset::make_designator(
717717
throw 0;
718718
}
719719

720-
entry.index=integer2size_t(index);
721-
entry.size=integer2size_t(size);
720+
entry.index = numeric_cast_v<std::size_t>(index);
721+
entry.size = numeric_cast_v<std::size_t>(size);
722722
entry.subtype=full_type.subtype();
723723
}
724724
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
@@ -211,7 +211,7 @@ static void add_padding_msvc(struct_typet &type, const namespacet &ns)
211211
{
212212
const mp_integer pad_bytes = a - displacement;
213213
std::size_t pad_bits =
214-
integer2size_t(pad_bytes * config.ansi_c.char_width);
214+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
215215
it = pad(components, it, pad_bits);
216216
offset += pad_bytes;
217217
}
@@ -255,7 +255,7 @@ static void add_padding_msvc(struct_typet &type, const namespacet &ns)
255255
{
256256
const mp_integer pad_bytes = a - displacement;
257257
const std::size_t pad_bits =
258-
integer2size_t(pad_bytes * config.ansi_c.char_width);
258+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
259259
pad(components, components.end(), pad_bits);
260260
offset += pad_bytes;
261261
}
@@ -369,7 +369,7 @@ static void add_padding_gcc(struct_typet &type, const namespacet &ns)
369369
{
370370
const mp_integer pad_bytes = a - displacement;
371371
const std::size_t pad_bits =
372-
integer2size_t(pad_bytes * config.ansi_c.char_width);
372+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
373373
it = pad(components, it, pad_bits);
374374
offset += pad_bytes;
375375
}
@@ -411,7 +411,7 @@ static void add_padding_gcc(struct_typet &type, const namespacet &ns)
411411
{
412412
mp_integer pad_bytes = max_alignment - displacement;
413413
std::size_t pad_bits =
414-
integer2size_t(pad_bytes * config.ansi_c.char_width);
414+
numeric_cast_v<std::size_t>(pad_bytes * config.ansi_c.char_width);
415415
pad(components, components.end(), pad_bits);
416416
}
417417
}
@@ -469,7 +469,7 @@ void add_padding(union_typet &type, const namespacet &ns)
469469
max_alignment_bits-(size_bits%max_alignment_bits);
470470

471471
unsignedbv_typet padding_type(
472-
integer2size_t(size_bits+padding_bits));
472+
numeric_cast_v<std::size_t>(size_bits + padding_bits));
473473

474474
struct_typet::componentt component;
475475
component.type()=padding_type;

src/goto-programs/goto_convert.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1830,7 +1830,7 @@ bool goto_convertt::get_string_constant(
18301830
forall_operands(it, index_op)
18311831
if(it->is_constant())
18321832
{
1833-
unsigned long i = integer2ulong(
1833+
const std::size_t i = numeric_cast_v<std::size_t>(
18341834
bv2integer(id2string(to_constant_expr(*it).get_value()), true));
18351835

18361836
if(i!=0) // to skip terminating 0

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 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
@@ -49,7 +49,7 @@ void interpretert::read_unbounded(
4949
mp_vectort &dest) const
5050
{
5151
// copy memory region
52-
std::size_t address_val=integer2size_t(address);
52+
std::size_t address_val = numeric_cast_v<std::size_t>(address);
5353
const mp_integer offset=address_to_offset(address_val);
5454
const mp_integer alloc_size=
5555
base_address_to_actual_size(address_val-offset);
@@ -60,7 +60,8 @@ void interpretert::read_unbounded(
6060

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

320321
forall_operands(it, expr)
@@ -412,7 +413,7 @@ void interpretert::evaluate(
412413
else if(expr.id()==ID_struct)
413414
{
414415
if(!unbounded_size(expr.type()))
415-
dest.reserve(integer2size_t(get_size(expr.type())));
416+
dest.reserve(numeric_cast_v<std::size_t>(get_size(expr.type())));
416417

417418
bool error=false;
418419

@@ -954,7 +955,7 @@ void interpretert::evaluate(
954955
{
955956
if(!unbounded_size(expr.type()))
956957
{
957-
dest.resize(integer2size_t(get_size(expr.type())));
958+
dest.resize(numeric_cast_v<std::size_t>(get_size(expr.type())));
958959
read(address, dest);
959960
}
960961
else
@@ -1021,7 +1022,7 @@ void interpretert::evaluate(
10211022

10221023
if(size.size()==1)
10231024
{
1024-
std::size_t size_int=integer2size_t(size[0]);
1025+
std::size_t size_int = numeric_cast_v<std::size_t>(size[0]);
10251026
for(std::size_t i=0; i<size_int; ++i)
10261027
evaluate(expr.op0(), dest);
10271028
return;
@@ -1047,10 +1048,11 @@ void interpretert::evaluate(
10471048
mp_integer need_size=(where_idx+1)*subtype_size;
10481049

10491050
if(dest.size()<need_size)
1050-
dest.resize(integer2size_t(need_size), 0);
1051+
dest.resize(numeric_cast_v<std::size_t>(need_size), 0);
10511052

10521053
for(std::size_t i=0; i<new_value.size(); ++i)
1053-
dest[integer2size_t((where_idx*subtype_size)+i)]=new_value[i];
1054+
dest[numeric_cast_v<std::size_t>((where_idx * subtype_size) + i)] =
1055+
new_value[i];
10541056

10551057
return;
10561058
}

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
@@ -93,7 +93,7 @@ static void remove_vector(exprt &expr)
9393
// do component-wise:
9494
// x+y -> vector(x[0]+y[0],x[1]+y[1],...)
9595
array_exprt array_expr(array_type);
96-
array_expr.operands().resize(integer2size_t(dimension));
96+
array_expr.operands().resize(numeric_cast_v<std::size_t>(dimension));
9797

9898
for(std::size_t i=0; i<array_expr.operands().size(); i++)
9999
{
@@ -119,7 +119,7 @@ static void remove_vector(exprt &expr)
119119
// do component-wise:
120120
// -x -> vector(-x[0],-x[1],...)
121121
array_exprt array_expr(array_type);
122-
array_expr.operands().resize(integer2size_t(dimension));
122+
array_expr.operands().resize(numeric_cast_v<std::size_t>(dimension));
123123

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

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
}

0 commit comments

Comments
 (0)