From 91b2939754710e7e0774a001a36c48eb7ef49647 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 14 Jan 2019 17:25:34 +0000 Subject: [PATCH] Construct parametert in a non-deprecated way The default constructor is deprecated. --- .../java_bytecode_convert_class.cpp | 4 ++-- .../java_bytecode_convert_method.cpp | 3 +-- src/ansi-c/c_typecheck_type.cpp | 4 ++-- src/cpp/cpp_typecheck_compound_type.cpp | 19 +++++++------------ src/cpp/parse.cpp | 2 +- src/jsil/jsil_internal_additions.cpp | 4 +--- src/jsil/parser.y | 8 ++++---- 7 files changed, 18 insertions(+), 26 deletions(-) diff --git a/jbmc/src/java_bytecode/java_bytecode_convert_class.cpp b/jbmc/src/java_bytecode/java_bytecode_convert_class.cpp index aaee205bfb6..6f65546eca1 100644 --- a/jbmc/src/java_bytecode/java_bytecode_convert_class.cpp +++ b/jbmc/src/java_bytecode/java_bytecode_convert_class.cpp @@ -831,11 +831,11 @@ void java_bytecode_convert_classt::add_array_types(symbol_tablet &symbol_table) const irep_idt clone_name = id2string(struct_tag_type_identifier) + ".clone:()Ljava/lang/Object;"; - java_method_typet::parametert this_param; + java_method_typet::parametert this_param( + java_reference_type(struct_tag_type)); this_param.set_identifier(id2string(clone_name)+"::this"); this_param.set_base_name(ID_this); this_param.set_this(); - this_param.type() = java_reference_type(struct_tag_type); const java_method_typet clone_type({this_param}, java_lang_object_type()); parameter_symbolt this_symbol; diff --git a/jbmc/src/java_bytecode/java_bytecode_convert_method.cpp b/jbmc/src/java_bytecode/java_bytecode_convert_method.cpp index bb35e3f34af..e5919ef1aa0 100644 --- a/jbmc/src/java_bytecode/java_bytecode_convert_method.cpp +++ b/jbmc/src/java_bytecode/java_bytecode_convert_method.cpp @@ -368,10 +368,9 @@ void java_bytecode_convert_method_lazy( if(!m.is_static) { java_method_typet::parameterst ¶meters = member_type.parameters(); - java_method_typet::parametert this_p; const reference_typet object_ref_type = java_reference_type(struct_tag_typet(class_symbol.name)); - this_p.type()=object_ref_type; + java_method_typet::parametert this_p(object_ref_type); this_p.set_this(); parameters.insert(parameters.begin(), this_p); } diff --git a/src/ansi-c/c_typecheck_type.cpp b/src/ansi-c/c_typecheck_type.cpp index 85ca6571a07..2c2708a6091 100644 --- a/src/ansi-c/c_typecheck_type.cpp +++ b/src/ansi-c/c_typecheck_type.cpp @@ -439,11 +439,11 @@ void c_typecheck_baset::typecheck_code_type(code_typet &type) ansi_c_declarationt &declaration= to_ansi_c_declaration(param); - code_typet::parametert parameter; // first fix type + code_typet::parametert parameter( + declaration.full_type(declaration.declarator())); typet ¶m_type = parameter.type(); - param_type = declaration.full_type(declaration.declarator()); std::list tmp_clean_code; tmp_clean_code.swap(clean_code); // ignore side-effects typecheck_type(param_type); diff --git a/src/cpp/cpp_typecheck_compound_type.cpp b/src/cpp/cpp_typecheck_compound_type.cpp index 91dd728bbe3..09bfa7dd1da 100644 --- a/src/cpp/cpp_typecheck_compound_type.cpp +++ b/src/cpp/cpp_typecheck_compound_type.cpp @@ -1349,17 +1349,6 @@ void cpp_typecheckt::add_this_to_method_type( code_typet &type, const typet &method_qualifier) { - code_typet::parameterst ¶meters = type.parameters(); - - parameters.insert( - parameters.begin(), code_typet::parametert()); - - code_typet::parametert ¶meter=parameters.front(); - - parameter.set_identifier(ID_this); // check? Not qualified - parameter.set_base_name(ID_this); - parameter.set_this(); - typet subtype; if(compound_symbol.type.id() == ID_union) @@ -1373,7 +1362,13 @@ void cpp_typecheckt::add_this_to_method_type( if(has_volatile(method_qualifier)) subtype.set(ID_C_volatile, true); - parameter.type()=pointer_type(subtype); + code_typet::parametert parameter(pointer_type(subtype)); + parameter.set_identifier(ID_this); // check? Not qualified + parameter.set_base_name(ID_this); + parameter.set_this(); + + code_typet::parameterst ¶meters = type.parameters(); + parameters.insert(parameters.begin(), parameter); } void cpp_typecheckt::add_anonymous_members_to_scope( diff --git a/src/cpp/parse.cpp b/src/cpp/parse.cpp index 8f338ad1cef..eb7c111f63d 100644 --- a/src/cpp/parse.cpp +++ b/src/cpp/parse.cpp @@ -5615,7 +5615,7 @@ bool Parser::rTypeNameOrFunctionType(typet &tname) if(!rArgDeclaration(parameter_declaration)) return false; - code_typet::parametert parameter; + code_typet::parametert parameter(typet{}); parameter.swap(parameter_declaration); type.parameters().push_back(parameter); diff --git a/src/jsil/jsil_internal_additions.cpp b/src/jsil/jsil_internal_additions.cpp index 46da672cd99..bfcdd101871 100644 --- a/src/jsil/jsil_internal_additions.cpp +++ b/src/jsil/jsil_internal_additions.cpp @@ -56,9 +56,7 @@ void jsil_internal_additions(symbol_tablet &dest) // add eval { - code_typet eval_type; - code_typet::parametert p; - eval_type.parameters().push_back(p); + code_typet eval_type({code_typet::parametert(typet())}, empty_typet()); symbolt symbol; symbol.base_name="eval"; diff --git a/src/jsil/parser.y b/src/jsil/parser.y index e7a9d739a2f..9d15cf76624 100644 --- a/src/jsil/parser.y +++ b/src/jsil/parser.y @@ -118,15 +118,15 @@ procedure_decl: TOK_PROCEDURE proc_ident '(' parameters_opt ')' '{' statements_opt '}' { symbol_exprt proc(to_symbol_expr(stack($2))); - code_typet ct; + code_typet::parameterst parameters; forall_operands(it, stack($4)) { symbol_exprt s(to_symbol_expr(*it)); - code_typet::parametert p; + code_typet::parametert p(typet{}); p.set_identifier(s.get_identifier()); - ct.parameters().push_back(p); + parameters.push_back(p); } - proc.type().swap(ct); + proc.type() = code_typet(std::move(parameters), typet()); symbol_exprt rv(to_symbol_expr(stack($7))); symbol_exprt rl(to_symbol_expr(stack($9)));