[PATCH 1/6] Remove some manual memory management from compile interface
Simon Marchi
simark@simark.ca
Sun Aug 9 22:34:05 GMT 2020
> diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c
> index 02df7ab90e6..00eaaf3fa68 100644
> --- a/gdb/compile/compile-cplus-types.c
> +++ b/gdb/compile/compile-cplus-types.c
> @@ -848,33 +848,33 @@ compile_cplus_convert_struct_or_union (compile_cplus_instance *instance,
> gcc_type result;
> if (type->code () == TYPE_CODE_STRUCT)
> {
> - struct gcc_vbase_array bases;
> int num_baseclasses = TYPE_N_BASECLASSES (type);
> + std::vector<gcc_type> elements (num_baseclasses);
> + std::vector<enum gcc_cp_symbol_kind> flags (num_baseclasses);
>
> - memset (&bases, 0, sizeof (bases));
> + struct gcc_vbase_array bases {};
> + bases.elements = elements.data ();
>
> if (num_baseclasses > 0)
You could now remove this `if (num_baseclasses > 0)`, there's no reason for it anymore I think.
Otherwise, LGTM.
Simon
More information about the Gdb-patches
mailing list