On Mon, Dec 2, 2024 at 6:20 AM Jeff Law <jeffreya...@gmail.com> wrote:
>
>
>
> On 11/1/24 12:53 AM, H.J. Lu wrote:
> > expand_call has
> >
> >   /* Now possibly adjust the number of named args.
> >       Normally, don't include the last named arg if anonymous args follow.
> >       We do include the last named arg if
> >       targetm.calls.strict_argument_naming() returns nonzero.
> >       (If no anonymous args follow, the result of list_length is actually
> >       one too large.  This is harmless.)
> >
> >       If targetm.calls.pretend_outgoing_varargs_named() returns
> >       nonzero, and targetm.calls.strict_argument_naming() returns zero,
> >       this machine will be able to place unnamed args that were passed
> >       in registers into the stack.  So treat all args as named.  This
> >       allows the insns emitting for a specific argument list to be
> >       independent of the function declaration.
> >
> >       If targetm.calls.pretend_outgoing_varargs_named() returns zero,
> >       we do not have any reliable way to pass unnamed args in
> >       registers, so we must force them into memory.  */
> >
> >    if ((type_arg_types != 0 || TYPE_NO_NAMED_ARGS_STDARG_P (funtype))
> >        && targetm.calls.strict_argument_naming (args_so_far))
> >      ;
> >
> > For non-variadic function, the number of named args is one too large.
> > Don't include the last named argument for non-variadic function so that
> > the accurate number of named args can be used.
> >
> > PR middle-end/117387
> > * calls.cc (expand_call): Don't include the last named argument
> > for non-variadic function.
> I'm not comfortable changing this in stage3.  I realize the patch was
> submitted while we were still in stage1, but just barely.  I'd like to
> see this resubmitted early in gcc-16 stage1 and with testing beyond just
> x86 since there's potentially ABI implications here.
>
> jeff

I am dropping this patch since it is no longer needed.

Thanks.

-- 
H.J.

Reply via email to