From d82b3862f1218134f5301ed990c6db48fcb82b2f Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 6 Sep 2018 13:48:10 +0100 Subject: 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) : 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) : Make parameter rvalue-reference. * compile/compile-internal.h (compile_instance) : 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) : Likewise --- gdb/compile/compile-cplus-symbols.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gdb/compile/compile-cplus-symbols.c') diff --git a/gdb/compile/compile-cplus-symbols.c b/gdb/compile/compile-cplus-symbols.c index 234b977..6acbd9a 100644 --- a/gdb/compile/compile-cplus-symbols.c +++ b/gdb/compile/compile-cplus-symbols.c @@ -184,13 +184,11 @@ convert_one_symbol (compile_cplus_instance *instance, /* Don't emit local variable decls for a raw expression. */ if (instance->scope () != COMPILE_I_RAW_SCOPE || symbol_name == nullptr) { - compile_scope scope; - /* For non-local symbols, create/push a new scope so that the symbol is properly scoped to the plug-in. */ if (!is_local) { - scope + compile_scope scope = instance->new_scope (SYMBOL_NATURAL_NAME (sym.symbol), SYMBOL_TYPE (sym.symbol)); if (scope.nested_type () != GCC_TYPE_NONE) @@ -200,7 +198,7 @@ convert_one_symbol (compile_cplus_instance *instance, return; } - instance->enter_scope (scope); + instance->enter_scope (std::move (scope)); } /* Get the `raw' name of the symbol. */ -- cgit v1.1