On Mon, Nov 17, 2025 at 09:39:13AM -0500, Marek Polacek wrote:
> > --- gcc/cp/parser.cc.jj     2025-11-15 16:03:45.587512374 +0100
> > +++ gcc/cp/parser.cc        2025-11-17 10:21:57.667975827 +0100
> > @@ -18779,9 +18779,14 @@ cp_parser_conversion_type_id (cp_parser*
> >       error ("invalid use of %<auto%> in conversion operator");
> >       return error_mark_node;
> >     }
> > -      else if (template_parm_scope_p ())
> > -   warning (0, "use of %<auto%> in member template "
> > -            "conversion operator can never be deduced");
> > +      else
> > +   {
> 
> I suppose auto_diagnostic_group doesn't belong here?  

I thought about that, but am not sure.
The two diagnostics are for the same issue, sure, but sometimes it
will be only one of those, sometimes the other one, sometimes both,
sometimes none.
Could be also
  if (!pedwarn (...)
      && template_parm_scope_p ())
   warning (0, ...);
i.e. only emit the warning if pedwarn was silent.

> > +     pedwarn (input_location, OPT_Wpedantic,
> > +              "invalid use of %<auto%> in conversion operator");
> > +     if (template_parm_scope_p ())
> > +       warning (0, "use of %<auto%> in member template "
> > +                   "conversion operator can never be deduced");

        Jakub

Reply via email to