compile: Remove non-const reference parameters

As mentioned here:

  https://sourceware.org/gdb/wiki/Internals%20GDB-C-Coding-Standards#Avoid_non-const_reference_parameters.2C_use_pointers_instead

we prefer to avoid non-const references.  This patch changes the
non-const references I could find in the compile/ directory, either by
making them rvalue-reference (&&) or changing them to pointers.

I'd say all the changes are pretty obvious, except the one in
compile_cplus_instance::enter_scope which might require more attention.

gdb/ChangeLog:

	* compile/compile-c.h (generate_c_for_variable_locations):
	Change reference to pointer.
	* compile/compile-c-support.c (compile_program) <compute>:
	Likewise.
	* compile/compile-c-symbols.c (generate_vla_size): Likewise.
	(generate_c_for_for_one_variable): Likewise
	(generate_c_for_variable_locations): Likewise
	* compile/compile-c-types.c (compile_c_instance::convert_type):
	Likewise
	* compile/compile-cplus-symbols.c (convert_one_symbol):
	std::move the scope passed to enter_scope.
	* compile/compile-cplus-types.c
	(compile_cplus_instance::enter_scope): Make parameter
	rvalue-reference.
	(compile_cplus_instance::new_scope): Change reference to
	pointer.
	(compile_cplus_instance::convert_type): Likewise
	(compile_cplus_convert_typedef): std::move the scope passed to
	enter_scope.
	(compile_cplus_convert_struct_or_union): Likewise.
	(compile_cplus_convert_enum): Likewise.
	(compile_cplus_convert_namespace): Likewise.
	* compile/compile-cplus.h (compile_cplus_instance)
	<enter_scope>: Make parameter rvalue-reference.
	* compile/compile-internal.h (compile_instance)
	<get_cached_type>: Likewise
	* compile/compile-loc2c.c (push): Likewise
	(pushf): Likewise
	(unary): Likewise
	(binary): Likewise
	(print_label): Likewise
	(pushf_register_address): Likewise
	(pushf_register): Likewise
	(do_compile_dwarf_expr_to_c): Likewise
	(compile_dwarf_expr_to_c): Likewise
	(compile_dwarf_bounds_to_c): Likewise
	* compile/compile.c (compile_instance::get_cached_type):
	Likewise
	* compile/compile.h (compile_dwarf_expr_to_c): Likewise.
	(compile_dwarf_bounds_to_c): Likewise
	* dwarf2loc.c (locexpr_generate_c_location): Likewise.
	(dwarf2_compile_property_to_c): Likewise
	* dwarf2loc.h (dwarf2_compile_property_to_c): Likewise
	* symtab.h (struct symbol_computed_ops) <generate_c_location>:
	Likewise
This commit is contained in:
Simon Marchi 2018-09-06 13:48:10 +01:00
parent cc5a5ae5b7
commit d82b3862f1
15 changed files with 132 additions and 86 deletions

View file

@ -247,14 +247,14 @@ operator!= (const compile_scope &lhs, const compile_scope &rhs)
/* See description in compile-cplus.h. */
void
compile_cplus_instance::enter_scope (compile_scope &new_scope)
compile_cplus_instance::enter_scope (compile_scope &&new_scope)
{
bool must_push = m_scopes.empty () || m_scopes.back () != new_scope;
new_scope.m_pushed = must_push;
/* Save the new scope. */
m_scopes.push_back (new_scope);
m_scopes.push_back (std::move (new_scope));
if (must_push)
{
@ -360,7 +360,7 @@ compile_cplus_instance::new_scope (const char *type_name, struct type *type)
class, the previous call will give us that type's gcc_type.
Upper layers are expecting to get the original type's
gcc_type! */
get_cached_type (type, scope.m_nested_type);
get_cached_type (type, &scope.m_nested_type);
return scope;
}
}
@ -526,7 +526,7 @@ compile_cplus_convert_typedef (compile_cplus_instance *instance,
= compile_cplus_instance::decl_name (TYPE_NAME (type));
/* Make sure the scope for this type has been pushed. */
instance->enter_scope (scope);
instance->enter_scope (std::move (scope));
/* Convert the typedef's real type. */
gcc_type typedef_type = instance->convert_type (check_typedef (type));
@ -822,7 +822,7 @@ compile_cplus_convert_struct_or_union (compile_cplus_instance *instance,
}
/* Push all scopes. */
instance->enter_scope (scope);
instance->enter_scope (std::move (scope));
/* First we create the resulting type and enter it into our hash
table. This lets recursive types work. */
@ -928,7 +928,7 @@ compile_cplus_convert_enum (compile_cplus_instance *instance, struct type *type,
= compile_cplus_instance::decl_name (TYPE_NAME (type));
/* Push all scopes. */
instance->enter_scope (scope);
instance->enter_scope (std::move (scope));
gcc_type int_type
= instance->plugin ().get_int_type (TYPE_UNSIGNED (type),
@ -1109,7 +1109,7 @@ compile_cplus_convert_namespace (compile_cplus_instance *instance,
= compile_cplus_instance::decl_name (TYPE_NAME (type));
/* Push scope. */
instance->enter_scope (scope);
instance->enter_scope (std::move (scope));
/* Convert this namespace. */
instance->plugin ().push_namespace (name.get ());
@ -1211,7 +1211,7 @@ compile_cplus_instance::convert_type (struct type *type,
{
/* Check if TYPE has already been converted. */
gcc_type result;
if (get_cached_type (type, result))
if (get_cached_type (type, &result))
return result;
/* It is the first time this type has been seen -- convert it