[PATCH v3 2/3] Pass return_method to _push_dummy_call

Pedro Alves palves@redhat.com
Fri Oct 19 11:31:00 GMT 2018


On 10/11/2018 03:49 PM, Alan Hayward wrote:
>    /* First determine how much stack space we will need.  */
> -  for (i = 0, argreg = E_1ST_ARGREG + (struct_return != 0); i < nargs; i++)
> +  for (i = 0, argreg = E_1ST_ARGREG + (return_method == return_method_struct);
> +       i < nargs; i++)

Please write:

  for (i = 0, argreg = E_1ST_ARGREG + (return_method == return_method_struct);
       i < nargs; 
       i++)

I.e., once you have to break one the statements, it reads better to break
them all.

> @@ -238,7 +239,7 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch,
>  
>    /* If struct_return is true, then the struct return address will
>       consume one argument-passing register.  */

This comment needs a slight update.

> -  if (struct_return)
> +  if (return_method == return_method_struct)


> @@ -1577,7 +1578,7 @@ aarch64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
>      }
>  
>    /* The struct_return pointer occupies X8.  */
> -  if (struct_return || lang_struct_return)
> +  if (return_method != return_method_normal)
>      {

I think in this patch, this should still read:

  if (return_method == return_method_struct || lang_struct_return)

So that the patch has no side effects other than passing the
return_method down.

Thanks,
Pedro Alves



More information about the Gdb-patches mailing list