34 Commits
Author SHA1 Message Date
Eric Blake fa96a1883e warnings: fix compilation with old autoconf
Autoconf older than 2.63b (such as what ships on CentOS 6) had
a bug that any AC_DEFUN'd macro name that includes shell meta-
characters causes failure due to missing shell quoting during
aclocal's use of autom4te.  We can work around the problem by
using m4_defun instead (same semantics in autom4te, but no
longer traced by aclocal, so no longer tickles the shell
quoting bug).

* m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C))
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)): Use m4_defun rather than
AC_DEFUN.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C))
(gl_MANYWARN_ALL_GCC(C++)): Likewise.

Reported-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
2017-08-24 20:48:57 -05:00
Reuben Thomas aae6a4227b manywarnings: Add support for C++.
* build-aux/g++-warning.spec: New file.
* m4/manywarnings-c++.m4: New file.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C++)): New macro, that
redirects to manywarnings-c++.m4.
* modules/manywarnings (Files): Add m4/manywarnings-c++.m4.
2017-08-07 22:08:13 +02:00
Bruno Haible 461664a6be warnings, manywarnings: Add support for multiple languages, not just C.
* warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL): Renamed from
gl_UNKNOWN_WARNINGS_ARE_ERRORS.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)): New macro.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)): New macro.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS): Dispatch to
gl_UNKNOWN_WARNINGS_ARE_ERRORS(_AC_LANG).
(gl_WARN_ADD): Require the gl_UNKNOWN_WARNINGS_ARE_ERRORS specialization
of the current language. If C++ is the current language, modify
WARN_CXXFLAGS instead of WARN_CFLAGS.
* manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): New macro, extracted from
gl_MANYWARN_ALL_GCC.
(gl_MANYWARN_ALL_GCC): Dispatch to gl_MANYWARN_ALL_GCC(_AC_LANG).
2017-08-07 00:40:41 +02:00
Paul Eggert 9cfe2a3983 manywarnings: port to 64-bit GCC builds of Emacs
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Compute max safe
object size rather than hardwiring 2147483647.  This is needed to
build GNU Emacs, which has one conditional (and used
only-in-theory) call to malloc with a literal greater than
2147483647.
2017-08-04 15:15:31 -07:00
Paul Eggert dbeec5dcb3 manywarnings: port to 32-bit GCC bug
Problem reported by Pino Toscano in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-07/msg00150.html
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Use 2**31 - 1,
not 2**63 - 1, to work around the following GCC bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81650
2017-08-01 09:53:18 -07:00
Paul Eggert 5e22aee79f manywarnings: update for GCC 7
* build-aux/gcc-warning.spec:
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add GCC 7 warnings, notably -Wimplicit-fallthrough=5, which
requires a non-comment fallthrough attribute.  This is a bit
cleaner than the comment versions.
* lib/strftime.c, lib/dfa.c, lib/fnmatch.c, lib/mbrtowc.c:
* lib/vasnprintf.c, tests/macros.h (FALLTHROUGH): New macro.
Use it whenever one switch case falls through into the next.
2017-05-16 09:32:31 -07:00
Paul Eggert a3fd683de3 version-etc: new year
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
2017-01-01 02:59:23 +00:00
Frediano Ziglio 94d81adc2f manywarnings: fix -Wno-missing-field-initializers detection
* m4/manywarnings.m4: Fix -Wno-missing-field-initializers detection
to be independent of -Wunused-variable.  I.E. ensure the latter
warning doesn't occur so that detection of the former is accurate.
2016-11-09 17:02:09 +00:00
Jim Meyering bf8e658ffa manywarnings: add -fno-common
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -fno-common
to the list.  Quoting the manual, "Compiling with -fno-common is
useful on targets for which it provides better performance, or if
you wish to verify that the program will work on other systems that
always treat uninitialized variable declarations this way [putting
it in the data section]."  If diffutils had been using this sooner,
it would have prevented this duplicate declaration issue:
http://git.sv.gnu.org/cgit/diffutils.git/commit/?id=v3.4-10-gc2dc91f
2016-09-02 10:25:16 -07:00
Paul Eggert 6f9206d4db manywarnings: update for GCC 6.1
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add GCC 6.1 options that apply to C.
* build-aux/gcc-warning.spec: Add GCC 6.1 options that
do not apply to C, are obsolescent, etc.
2016-05-17 09:08:22 -07:00
Paul Eggert 71090a2a31 version-etc: new year
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
2016-01-01 00:57:21 -08:00
Paul Eggert df82ac05f6 manywarnings: add GCC 5.1 warnings
* build-aux/gcc-warning.spec: Add -Wabi=, -Warray-bounds,
-Warray-bounds=, -Wc++14-compat, -Wc90-c99-compat,
-Wc99-c11-compat, -Wshadow-ivar, -Wsized-deallocation,
-Wsuggest-override, -Wuse-without-only.  Change
-Wnormalized=... operands to match 5.1.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbool-compare,
-Wchkp, -Wdesignated-init, -Wdiscarded-array-qualifiers,
-Wdiscarded-qualifiers, -Wformat-signedness,
-Wincompatible-pointer-types, -Wint-conversion,
-Wlogical-not-parentheses, -Wmemset-transposed-args, -Wodr,
-Wshift-count-negative, -Wshift-count-overflow,
-Wsizeof-array-argument, -Wsuggest-final-methods,
-Wsuggest-final-types, -Wswitch-bool.  Remove -Warray-bounds,
and add -Warray-bounds=2 as a special case.
2015-04-24 13:00:18 -07:00
Paul Eggert b9bfe78424 version-etc: new year
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date.
* all files: Run 'make update-copyright'.
2014-12-31 17:47:54 -08:00
Paul Eggert 157c42eff7 manywarnings: add GCC 4.9 warnings
Also, make it easier to maintain this in the future.
* build-aux/gcc-warning.spec: Add -Wabi-tag,
-Wconditionally-supported, -Wdelete-incomplete,
-Winherited-variadic-ctor, -Wvirtual-move-assign, -Wzerotrip.
Remove duplicates.  Use tabs uniformly, as that's what 'cut' wants.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wdate-time,
-Wopenmp-simd.  Use -fdiagnostics-show-option and -funit-at-a-time
only for older GCC versions that need them.  Handke
-Wnormalized=nfc specially, so that the 'comm' command used
for maintenance doesn't get confused.
2014-09-01 01:51:37 -07:00
Jim Meyering 5088dc55f4 manywarnings: remove -Wmudflap
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove -Wmudflap, since
it is no longer supported in gcc-4.9-to-be.
2014-01-02 16:55:46 -08:00
Eric Blake 1276a2c5f2 maint: update copyright
I ran 'make update-copyright'.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-01-01 00:07:10 -07:00
Eric Blake 4a5ee89c8a manywarnings: enable nicer gcc warning messages
With gcc 4.3.4, -Wdisabled-optimization is noisy unless you also
use -funit-at-a-time.

With gcc 4.4.7, there is no indication which warning option
triggered a particular message unless you also use
-fdiagnostics-show-option.

Both of these options are default in newer gcc (such as 4.8.1);
but including them in the list of possible warnings makes the
experience nicer on older platforms.

* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Older gcc requires
some -f options for optimal warnings.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-24 06:33:40 -06:00
Paul Eggert 564705d7d9 manywarnings: update for GCC 4.8.0
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add -Waggressive-loop-optimizations, -Wreturn-local-addr, which
are new to GCC 4.8.  Remove -Wformat=2, -Wmissing-format-attribute,
-Wmissing-noreturn, as they are duplicates of other warnings.
Remove -Wunreachable-code, as it is removed in GCC 4.8 and
was documented to be flaky in earlier versions of GCC.
2013-05-15 23:21:53 -07:00
Eric Blake 9fc81090f6 maint: update all copyright year number ranges
Run "make update-copyright".  Compare to commit 1602f0a from last year.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-01-01 00:50:58 +00:00
Eric Blake 6169d5316f manywarnings: cater to more gcc infelicities
Some versions of gcc (at least 4.2.1) noisily warn if
-Wuninitialized is given without -O; in isolation, configure
learns that the warning option is supported, but when later
compiling with -Werror, this makes builds fail.  If the
option will have no effect for the configured choice of
$CFLAGS, then it is not worth including in the set.

* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add test for
-Wuninitialized without -O.

Signed-off-by: Eric Blake <eblake@redhat.com>
2012-10-02 09:18:02 -06:00
Jim Meyering dd44da552f manywarnings: update the list of "all" warnings
* m4/manywarnings.m4: Unite lists, and add many new options.
* build-aux/gcc-warning: New file.

Run this command with the latest gcc to see if they have added
options not yet on our list:

gl=.; comm -1 -3 \
  <(sed -n 's/^  *\(-[^ ]*\) .*/\1/p' $gl/m4/manywarnings.m4 |sort) \
  <(gcc --help=warnings|sed -n 's/^  \(-[^ ]*\) .*/\1/p' |sort \
    |grep -v --line-regexp -f <(cut -f1 $gl/build-aux/gcc-warning.spec))
2012-09-02 11:01:32 +02:00
Paul Eggert 6323b635e5 manywarnings: remove duplicate -Wmultichar entry
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove duplicate
entry for -Wmultichar.  -Wno-multichar is in the GCC 4.7.0 manual,
so keep the entry marked as documented.
2012-05-27 16:27:20 -07:00
Jim Meyering 1602f0afed maint: update all copyright year number ranges
Run "make update-copyright".
2012-01-01 10:04:58 +01:00
Simon Josefsson 8efe0514ce manywarnings: Don't mention gcc version in docstring.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Doc fix.  Suggested by
Jim Meyering <meyering@redhat.com>.
2011-11-30 12:00:05 +01:00
Eric Blake ad55efad1f manywarnings: drop -Wunsuffixed-float-constants
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): C99 does not allow
'1.0D', which is the only way to silence this warning for 'double'.

Signed-off-by: Eric Blake <eblake@redhat.com>
2011-11-29 15:02:58 -07:00
Simon Josefsson 3e07d5d60b manywarnings: More warnings.
* m4/manywarnings.m4: Add more warnings from gcc 4.6.2.
2011-11-20 23:08:31 +01:00
Bruno Haible a3e446b9d2 manywarnings: fix indentation
* m4/manywarnings.m4: Indent by 2 spaces consistently.
2011-04-30 13:10:33 +02:00
Pádraig Brady 2953da14ed manywarnings: add -Wno-missing-field-initializers if needed
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add the above
option if it's needed to allow initialization with { 0, },
which is the case with GCC before version 4.7
2011-04-30 10:50:21 +01:00
Jim Meyering d60f3b0c6b maint: update almost all copyright ranges to include 2011
Run the new "make update-copyright" rule.
2011-01-01 22:12:59 +01:00
Jim Meyering b2e2010c7c update nearly all FSF copyright year lists to include 2010
Use the same procedure as for 2009, outlined in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
2010-01-01 10:42:00 +01:00
Simon Josefsson 5b4c9bdc29 manywarnings: Add GCC 4.4 warnings. 2009-06-02 10:41:29 +02:00
Simon Josefsson 9b9be67c71 m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add more warnings. 2008-12-11 10:26:26 +01:00
Simon Josefsson cfcd2abb74 Fix typo in last commit. 2008-11-18 15:39:57 +01:00
Simon Josefsson c00c93e702 warnings: Split off some code to new module manywarnings. 2008-11-18 13:50:32 +01:00