On Wed, Oct 16, 2024 at 7:14 PM Joseph Myers via Gcc <gcc@gcc.gnu.org> wrote:
>
> One issue that showed up as test failures with a default of -std=gnu23 is
> that -std=gnu23 -Wtraditional produces a "traditional C rejects ISO C
> style function definitions" warning for function definitions with empty
> parentheses, as they are treated like (void) in C23, so resulting in
> failure of several -Wtraditional tests.
>
> Clearly that's a bug (that warning should only be given for literal
> (void), not for () meaning (void)) and wouldn't be hard to fix.  But is
> there actually any current use for the -Wtraditional option?  It seems
> extremely unlikely now that compatibility with pre-C89 compilers would be
> relevant.  So maybe it would make more sense to remove -Wtraditional
> support (remove all the logic implementing the option, make it an option
> marked with Ignore in c.opt to do nothing so as not to break any build
> systems that hardcode this option) rather than fixing this bug with an
> option that's probably no longer useful.

I wonder if we should diagnose(?) and/or ignore -Wtraditional when
-std={c,gnu}89
isn't in effect.  It doesn't make much sense to allow and not diagnose
c99+ features
but complain about oddball compatibility issues with pre-ISO C.

Richard.

> --
> Joseph S. Myers
> josmy...@redhat.com
>

Reply via email to