@@ -327,16 +327,13 @@ bool ansi_c_entry_point(
327327 zero_string.type().set(ID_size, "infinity");
328328 exprt index(ID_index, char_type());
329329 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()));
333331
334332 if(argv_symbol.type.subtype()!=address_of.type())
335333 address_of.make_typecast(argv_symbol.type.subtype());
336334
337335 // 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);
340337
341338 init_code.copy_to_operands(
342339 code_assignt(argv_symbol.symbol_expr(), array_of));
@@ -400,17 +397,18 @@ bool ansi_c_entry_point(
400397
401398 {
402399 const exprt &arg1=parameters[1 ];
400+ const pointer_typet &pointer_type=
401+ to_pointer_type (arg1.type ());
403402
404- exprt index_expr (ID_index, arg1.type ().subtype ());
405- index_expr.copy_to_operands (
403+ index_exprt index_expr (
406404 argv_symbol.symbol_expr (),
407- from_integer (0 , index_type ()));
405+ from_integer (0 , index_type ()),
406+ pointer_type.subtype ());
408407
409408 // disable bounds check on that one
410409 index_expr.set (" bounds_check" , false );
411410
412- op1=exprt (ID_address_of, arg1.type ());
413- op1.move_to_operands (index_expr);
411+ op1=address_of_exprt (index_expr, pointer_type);
414412 }
415413
416414 // do we need envp?
@@ -420,13 +418,15 @@ bool ansi_c_entry_point(
420418 exprt &op2=operands[2 ];
421419
422420 const exprt &arg2=parameters[2 ];
421+ const pointer_typet &pointer_type=
422+ to_pointer_type (arg2.type ());
423423
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 ());
427428
428- op2=exprt (ID_address_of, arg2.type ());
429- op2.move_to_operands (index_expr);
429+ op2=address_of_exprt (index_expr, pointer_type);
430430 }
431431 }
432432 }
0 commit comments