On Fri, Aug 1, 2025 at 8:54 AM Richard Biener
<[email protected]> wrote:
>
> On Thu, Jul 31, 2025 at 4:43 PM Florian Weimer <[email protected]> wrote:
>
> OK.
I've pushed both now.
Richard.
> Thanks,
> Richard.
>
> > gcc/c/
> >
> > PR c/120055
> > * c-typeck.cc (convert_arguments): Check if fundecl is null
> > before checking for builtin function declaration.
> >
> > gcc/testsuite/
> >
> > * gcc.dg/Wdeprecated-non-prototype-6.c: New test.
> >
> > (cherry picked from commit 02fa088f5b61fb5ddfff9e2dc0c0404450e7c6a4)
> >
> > ---
> > gcc/c/c-typeck.cc | 2 +-
> > gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-6.c | 14 ++++++++++++++
> > 2 files changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc
> > index 9f1a94f98ad..b007c8ffe76 100644
> > --- a/gcc/c/c-typeck.cc
> > +++ b/gcc/c/c-typeck.cc
> > @@ -4343,7 +4343,7 @@ convert_arguments (location_t loc, vec<location_t>
> > arg_loc, tree fntype,
> > }
> >
> > if (!typetail && parmnum == 0 && !TYPE_NO_NAMED_ARGS_STDARG_P
> > (fntype)
> > - && !fndecl_built_in_p (fundecl))
> > + && !(fundecl && fndecl_built_in_p (fundecl)))
> > {
> > auto_diagnostic_group d;
> > bool warned;
> > diff --git a/gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-6.c
> > b/gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-6.c
> > new file mode 100644
> > index 00000000000..08f2995d5b2
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-6.c
> > @@ -0,0 +1,14 @@
> > +/* { dg-do compile } */
> > +/* { dg-options "-std=gnu17 -Wdeprecated-non-prototype" } */
> > +
> > +void (*f1) ();
> > +void (*f2) ();
> > +void (*f3) (...);
> > +
> > +void
> > +g ()
> > +{
> > + f1 ();
> > + f2 (1); /* { dg-warning "does not allow arguments for function" } */
> > + f3 (1);
> > +}
> >
> > base-commit: 377c9d01a648df418d13653814b68f7cc66fc320
> >