https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77759
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |ebotcazou at gcc dot
gnu.org
--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> The following patch fixes this; thoughts?
>
> --- a/gcc/config/sparc/sparc.c
> +++ b/gcc/config/sparc/sparc.c
> @@ -6450,10 +6450,9 @@ function_arg_slotno (const struct sparc_args *cum,
> machine_mode mode,
> && slotno >= SPARC_FP_ARG_MAX - 1)
> return -1;
>
> - /* If there are only int args and all int slots are filled,
> - then must pass on stack. */
> + /* If there are only int args or this is an empty record type,
> + and all int slots are filled, then must pass on stack. */
> if (!data.fp_regs
> - && data.int_regs
> && slotno >= SPARC_INT_ARG_MAX)
> return -1;
> }
Yes, this looks good to me, but the int_regs field is now unused.