[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & A
From: |
David A. Wheeler |
Subject: |
Re: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC |
Date: |
Mon, 10 Feb 2014 17:28:45 -0500 (EST) |
On Mon, 10 Feb 2014 17:01:57 -0500, Dale Visser <address@hidden> wrote:
> I've created a new patch (attached) incorporating your suggestions. See my
> comments inline below.
Excellent!
> Done, with the wording you suggested. On my system (gcc version is 4.8.1), I
> tested the gcc oddity you mentioned and found that it only applied to flags
> of the form -Wno-*. E.g., -Wnosuchoption and -Wjunk would still not be added,
> but -Wno-way would be added and harmlessly ignored.
Okay, much better.
> > ./doc/autoconf.texi:23579: warning: `(' follows defined name
> > `AC_APPEND_FLAG_IFVALID' instead of whitespace.
> > Can you fix the documentation to remove those warnings?
> Done. For some reason, those warning never showed for me. How fitting... :-)
I tried it out.
Now it works for me, good.
> Thank you for your helpful comments. Let me know what you think of the latest.
Thanks. I ran a test case (using gcc as the C compiler),
here's what running my configure now looks like:
...
checking CFLAGS for maximum warnings... -Wall
checking for style of include used by make... GNU
checking dependency style of gcc -std=gnu11... gcc3
checking if -Wno-such-option can be added to CFLAGS... yes
...
That looks perfect, it's certainly clear what's going on.
When I run "make" on the resulting Makefile (after "touch"ing my .c file),
I get the following output:
gcc -std=gnu11 -DHAVE_CONFIG_H -I. -Wall -Wno-such-option -MT hello.o -MD
-MP -MF .deps/hello.Tpo -c -o hello.o hello.c
hello.c:3:22: warning: "/*" within comment [-Wcomment]
cc1: warning: unrecognized command line option "-Wno-such-option" [enabled by
default]
mv -f .deps/hello.Tpo .deps/hello.Po
The first warning is exactly what I expect ("/*" within comment), excellent.
I even added this to configure.ac:
AC_APPEND_FLAG_IFVALID([-Wno-comment])
and as expected it turned off "-Wcomment".
This makes it really easy to turn on & off warning flags, while
still making it portable. Excellent.
I'm a little annoyed by the second warning, though, the one that says:
cc1: warning: unrecognized command line option "-Wno-such-option" [enabled by
default]
I presume this happens because there's no error return
given an unrecognized command line option. That's not a *killer*, but
that would be annoying since it'd repeat in every compile.
Is there a way your "_IFVALID" macro could detect this case
(e.g., by compiling with and without, and noticing if the name of the option
showed up in a line only output by the "it's on" case?)
Or maybe is there some other way to detect that adding a flag would not really
be valid?
I admit that this can only occur if (1) the compiler is gcc and (2) you use a
flag
of the form -Wno-* where "*" isn't supported, so maybe this is a case not worth
creating a complex solution. But if there's an easy refinement it'd be nice to
have.
--- David A. Wheeler
- =?UTF-8?Q?Re:=20Turn=20on=20compiler=20warnings=20by=20default=20for=20AC=5FPROG=5FCC, =20AC=5FPROG=5FCXX=09&=20AC=5FPROG=5FFC?=, David A. Wheeler, 2014/02/07
- RE: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC, Dale Visser, 2014/02/10
- Re: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC, David A. Wheeler, 2014/02/10
- RE: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC, Dale Visser, 2014/02/10
- Re: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC,
David A. Wheeler <=
- Re: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC, Eric Blake, 2014/02/10
- RE: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC, Dale Visser, 2014/02/11