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.