Re: Turn on compiler warnings by default for AC_PROG_CC, AC_PROG_CXX & AC_PROG_FC

Zack Weinberg <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.patches
Message-ID <[email protected]>
On 2014-01-17 4:02 PM, David A. Wheeler wrote:
> Zack Weinberg said:
>> For GCC I would be quite hesitant to turn anything on beyond -Wall
>> without explicit buy-in from the project, but I like the idea of
>> enabling -Wall by default.
>
> I pretty sure that's what Dale Visser's patch does.  It says: +
> "-pedantic  % -Wall"       dnl GCC
>
> Dale Visser's patch does include a comment that says: +#   For the
> GNU compiler it will be -Wall (and -ansi -pedantic) The result +#
> is added to the shellvar being CFLAGS, CXXFLAGS, or FCFLAGS by
> default.
>
> But I think this comment is no longer true. It appears to me that the
> code is just trying to see if "-pedantic" *WORKS*, and if it does,
> then using that as evidence that "-Wall" would work.

Oh, is that what "-pedantic % -Wall" means?  I had the impression it was 
going to try each one in isolation and include the subset that worked.

Despite the dire things the GCC manual says about -pedantic, it is not 
hard to write *new* code that is -pedantic clean, or -Wextra clean, etc; 
I would support an opt-in mechanism for enabling a much more aggressive 
set of warnings, and recommending its use in the manual for new 
projects.  But any such thing has a high probability of breaking *old* 
code, hence my earlier comments.  Also, as long as stock Autoconf checks 
are sloppy (e.g. AC_CHECK_FUNCS and its habit of blindly declaring 
everything as "char foo();") we will need to distinguish warnings 
enabled for the *project* from warnings enabled for the *configure script*.

-ansi, however, should not be in there at all; it doesn't just turn on 
strict conformance mode, it turns on strict *C89* conformance mode, 
which is often wrong for new code.  And even nowadays, strict 
conformance mode in general tends to break system headers.

zw
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.