File tree 7 files changed +18
-26
lines changed
7 files changed +18
-26
lines changed Original file line number Diff line number Diff line change @@ -831,11 +831,11 @@ void java_bytecode_convert_classt::add_array_types(symbol_tablet &symbol_table)
831
831
832
832
const irep_idt clone_name =
833
833
id2string (struct_tag_type_identifier) + " .clone:()Ljava/lang/Object;" ;
834
- java_method_typet::parametert this_param;
834
+ java_method_typet::parametert this_param (
835
+ java_reference_type (struct_tag_type));
835
836
this_param.set_identifier (id2string (clone_name)+" ::this" );
836
837
this_param.set_base_name (ID_this);
837
838
this_param.set_this ();
838
- this_param.type () = java_reference_type (struct_tag_type);
839
839
const java_method_typet clone_type ({this_param}, java_lang_object_type ());
840
840
841
841
parameter_symbolt this_symbol;
Original file line number Diff line number Diff line change @@ -368,10 +368,9 @@ void java_bytecode_convert_method_lazy(
368
368
if (!m.is_static )
369
369
{
370
370
java_method_typet::parameterst ¶meters = member_type.parameters ();
371
- java_method_typet::parametert this_p;
372
371
const reference_typet object_ref_type =
373
372
java_reference_type (struct_tag_typet (class_symbol.name ));
374
- this_p. type ()= object_ref_type;
373
+ java_method_typet::parametert this_p ( object_ref_type) ;
375
374
this_p.set_this ();
376
375
parameters.insert (parameters.begin (), this_p);
377
376
}
Original file line number Diff line number Diff line change @@ -439,11 +439,11 @@ void c_typecheck_baset::typecheck_code_type(code_typet &type)
439
439
ansi_c_declarationt &declaration=
440
440
to_ansi_c_declaration (param);
441
441
442
- code_typet::parametert parameter;
443
442
444
443
// first fix type
444
+ code_typet::parametert parameter (
445
+ declaration.full_type (declaration.declarator ()));
445
446
typet ¶m_type = parameter.type ();
446
- param_type = declaration.full_type (declaration.declarator ());
447
447
std::list<codet> tmp_clean_code;
448
448
tmp_clean_code.swap (clean_code); // ignore side-effects
449
449
typecheck_type (param_type);
Original file line number Diff line number Diff line change @@ -1349,17 +1349,6 @@ void cpp_typecheckt::add_this_to_method_type(
1349
1349
code_typet &type,
1350
1350
const typet &method_qualifier)
1351
1351
{
1352
- code_typet::parameterst ¶meters = type.parameters ();
1353
-
1354
- parameters.insert (
1355
- parameters.begin (), code_typet::parametert ());
1356
-
1357
- code_typet::parametert ¶meter=parameters.front ();
1358
-
1359
- parameter.set_identifier (ID_this); // check? Not qualified
1360
- parameter.set_base_name (ID_this);
1361
- parameter.set_this ();
1362
-
1363
1352
typet subtype;
1364
1353
1365
1354
if (compound_symbol.type .id () == ID_union)
@@ -1373,7 +1362,13 @@ void cpp_typecheckt::add_this_to_method_type(
1373
1362
if (has_volatile (method_qualifier))
1374
1363
subtype.set (ID_C_volatile, true );
1375
1364
1376
- parameter.type ()=pointer_type (subtype);
1365
+ code_typet::parametert parameter (pointer_type (subtype));
1366
+ parameter.set_identifier (ID_this); // check? Not qualified
1367
+ parameter.set_base_name (ID_this);
1368
+ parameter.set_this ();
1369
+
1370
+ code_typet::parameterst ¶meters = type.parameters ();
1371
+ parameters.insert (parameters.begin (), parameter);
1377
1372
}
1378
1373
1379
1374
void cpp_typecheckt::add_anonymous_members_to_scope (
Original file line number Diff line number Diff line change @@ -5615,7 +5615,7 @@ bool Parser::rTypeNameOrFunctionType(typet &tname)
5615
5615
if (!rArgDeclaration (parameter_declaration))
5616
5616
return false ;
5617
5617
5618
- code_typet::parametert parameter;
5618
+ code_typet::parametert parameter (typet{}) ;
5619
5619
parameter.swap (parameter_declaration);
5620
5620
type.parameters ().push_back (parameter);
5621
5621
Original file line number Diff line number Diff line change @@ -56,9 +56,7 @@ void jsil_internal_additions(symbol_tablet &dest)
56
56
// add eval
57
57
58
58
{
59
- code_typet eval_type;
60
- code_typet::parametert p;
61
- eval_type.parameters ().push_back (p);
59
+ code_typet eval_type ({code_typet::parametert (typet ())}, empty_typet ());
62
60
63
61
symbolt symbol;
64
62
symbol.base_name =" eval" ;
Original file line number Diff line number Diff line change @@ -118,15 +118,15 @@ procedure_decl: TOK_PROCEDURE proc_ident '(' parameters_opt ')'
118
118
' {' statements_opt ' }'
119
119
{
120
120
symbol_exprt proc (to_symbol_expr(stack($2 )));
121
- code_typet ct ;
121
+ code_typet::parameterst parameters ;
122
122
forall_operands (it, stack($4 ))
123
123
{
124
124
symbol_exprt s (to_symbol_expr (*it));
125
- code_typet::parametert p;
125
+ code_typet::parametert p (typet{}) ;
126
126
p.set_identifier (s.get_identifier ());
127
- ct. parameters () .push_back (p);
127
+ parameters.push_back (p);
128
128
}
129
- proc.type().swap(ct );
129
+ proc.type() = code_typet(std::move(parameters), typet() );
130
130
131
131
symbol_exprt rv (to_symbol_expr(stack($7 )));
132
132
symbol_exprt rl (to_symbol_expr(stack($9 )));
You can’t perform that action at this time.
0 commit comments