Could -Wall add on -Wundef by default ?

Jonathan Wakely jwakely.gcc@gmail.com
Sat Mar 2 13:37:00 GMT 2019


On Sat, 2 Mar 2019 at 13:35, Jonny Grant <jg@jguk.org> wrote:
>
>
>
> On 22/02/2019 15:41, David Brown wrote:
> > On 22/02/2019 15:29, Jonny Grant wrote:
> >> Would be good for -Wundef to be on by default
> >>
> >> We see a few times code silently left out of a build unless we use -Wundef
> >>
> >> Example below, the bug is this file didn't have a #define PROJ_DEF 1
> >>
> >> Jonny
> >>
> >> // gcc -Wall -Wextra -c pre.c
> >> #include <stdio.h>
> >> int main()
> >> {
> >> #if PROJ_DEF
> >>      printf("hello\n");
> >> #endif
> >>
> >>      return 0;
> >> }
> >>
> >
> > I think far too much code relies on this sort of construct and would
> > throw up warnings while otherwise passing -Wall cleanly.
> >
> > As far as I can see from the C standards, using "#if PROJ_DEF" without
> > defining the macro "PROJ_DEF" is not allowed, but I could be wrong - and
> > it certainly has been common usage even if the standards disallow it.
>
> Perhaps just adding to -Wextra would make sense?

I would still be strongly against that. Why can't you just use
-Wundef, instead of forcing everybody else to change their code to
follow your preferred convention?



More information about the Gcc-help mailing list