view doc/warnings.texi @ 16464:2a3849cfe7b9

Tests for module 'modf-ieee'. * modules/modf-ieee-tests: New file. * tests/test-modf-ieee.c: New file.
author Bruno Haible <>
date Sun, 26 Feb 2012 17:55:21 +0100
parents 3c68487be563
children 4e33322b32f8
line wrap: on
line source

@node warnings
@section warnings

The @code{warnings} module allows to regularly build a package with more
GCC warnings than the default warnings emitted by GCC.

It provides the following functionality:

@itemize @bullet
You can select some warning options, such as @samp{-Wall}, to be enabled
whenever building with a GCC version that supports these options.  The
user can choose to override these warning options by providing the
opposite options in the @code{CFLAGS} variable at configuration time.

You can make these warnings apply to selected directories only.  In
projects where subprojects are maintained by different people, or where
parts of the source code are imported from external sources -- for example
from gnulib --, it is useful to apply different warning options to
different directories.

It allows to use @samp{-Werror} at @samp{make distcheck} time, to verify
that on the maintainer's system, no warnings remain.  (Note that use of
@samp{-Werror} in @code{CFLAGS} does not work in general, because it may
break autoconfiguration.)
@end itemize

To use this module, you need the following:

In @file{}, use for example
gl_WARN_ADD([-Wpointer-arith], [WARN_CFLAGS])
@end smallexample

In the directories which shall use @code{WARN_CFLAGS}, use it in the
definition of @code{AM_CFLAGS}, like this:
@end smallexample

Note that the @code{AM_CFLAGS} is used in combination with @code{CFLAGS}
and before @code{CFLAGS} in build rules emitted by Automake.  This allows
the user to provide @code{CFLAGS} that override the @code{WARN_CFLAGS}.
@end enumerate

Note that it is a bad idea to use @samp{gl_WARN_ADD([-Werror])}.  The
warnings emitted by GCC depend, to some extent, on the contents of the
system header files, on the size and signedness of built-in types, etc.
Use of @samp{-Werror} would cause frustration to all users on platforms
that the maintainer has not tested before the release.  It is better if
maintainers use @samp{-Werror} only for themselves (for example, during
@samp{make distcheck}, as mentioned above).