@@ -327,16 +327,13 @@ bool ansi_c_entry_point(
327
327
zero_string.type().set(ID_size, "infinity");
328
328
exprt index(ID_index, char_type());
329
329
index.copy_to_operands(zero_string, from_integer(0, uint_type()));
330
- exprt address_of("address_of", pointer_typet());
331
- address_of.type().subtype()=char_type();
332
- address_of.copy_to_operands(index);
330
+ exprt address_of=address_of_exprt(index, pointer_type(char_type()));
333
331
334
332
if(argv_symbol.type.subtype()!=address_of.type())
335
333
address_of.make_typecast(argv_symbol.type.subtype());
336
334
337
335
// assign argv[*] to the address of a string-object
338
- exprt array_of("array_of", argv_symbol.type);
339
- array_of.copy_to_operands(address_of);
336
+ array_of_exprt array_of(address_of, argv_symbol.type);
340
337
341
338
init_code.copy_to_operands(
342
339
code_assignt(argv_symbol.symbol_expr(), array_of));
@@ -400,17 +397,18 @@ bool ansi_c_entry_point(
400
397
401
398
{
402
399
const exprt &arg1=parameters[1 ];
400
+ const pointer_typet &pointer_type=
401
+ to_pointer_type (arg1.type ());
403
402
404
- exprt index_expr (ID_index, arg1.type ().subtype ());
405
- index_expr.copy_to_operands (
403
+ index_exprt index_expr (
406
404
argv_symbol.symbol_expr (),
407
- from_integer (0 , index_type ()));
405
+ from_integer (0 , index_type ()),
406
+ pointer_type.subtype ());
408
407
409
408
// disable bounds check on that one
410
409
index_expr.set (" bounds_check" , false );
411
410
412
- op1=exprt (ID_address_of, arg1.type ());
413
- op1.move_to_operands (index_expr);
411
+ op1=address_of_exprt (index_expr, pointer_type);
414
412
}
415
413
416
414
// do we need envp?
@@ -420,13 +418,15 @@ bool ansi_c_entry_point(
420
418
exprt &op2=operands[2 ];
421
419
422
420
const exprt &arg2=parameters[2 ];
421
+ const pointer_typet &pointer_type=
422
+ to_pointer_type (arg2.type ());
423
423
424
- exprt index_expr (ID_index, arg2.type ().subtype ());
425
- index_expr.copy_to_operands (
426
- envp_symbol.symbol_expr (), from_integer (0 , index_type ()));
424
+ index_exprt index_expr (
425
+ envp_symbol.symbol_expr (),
426
+ from_integer (0 , index_type ()),
427
+ pointer_type.subtype ());
427
428
428
- op2=exprt (ID_address_of, arg2.type ());
429
- op2.move_to_operands (index_expr);
429
+ op2=address_of_exprt (index_expr, pointer_type);
430
430
}
431
431
}
432
432
}
0 commit comments