Mercurial > gnulib
changeset 37428:5ff63ab9f7b2
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.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Mon, 01 Sep 2014 01:51:06 -0700 |
parents | f3424d99a93c |
children | 8a8dfec02a2d |
files | ChangeLog build-aux/gcc-warning.spec m4/manywarnings.m4 |
diffstat | 3 files changed, 50 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Aug 31 19:19:44 2014 -0700 +++ b/ChangeLog Mon Sep 01 01:51:06 2014 -0700 @@ -1,3 +1,17 @@ +2014-09-01 Paul Eggert <eggert@cs.ucla.edu> + + 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-08-31 Paul Eggert <eggert@cs.ucla.edu> vasnprintf: fix bugs in width computation
--- a/build-aux/gcc-warning.spec Sun Aug 31 19:19:44 2014 -0700 +++ b/build-aux/gcc-warning.spec Mon Sep 01 01:51:06 2014 -0700 @@ -1,6 +1,7 @@ # options to filter out, and why --all-warnings alias for -Wall --extra-warnings alias for -Wextra +-Wabi-tag c++ -Waggregate-return obsolescent -Waliasing fortran -Walign-commons fortran @@ -11,16 +12,16 @@ -Wc++0x-compat c++ -Wc++11-compat c++ -Wc-binding-type fortran --Wc-binding-type fortran -Wcast-qual FIXME maybe? too much noise; encourages bad changes -Wcharacter-truncation fortran --Wcompare-reals fortran +-Wcompare-reals fortran +-Wconditionally-supported c++ and objc++ -Wconversion FIXME maybe? too much noise; encourages bad changes -Wconversion-extra fortran -Wconversion-null c++ and objc++ -Wctor-dtor-privacy c++ -Wdeclaration-after-statement FIXME: do not want. others may --Wdeclaration-after-statement obsolescent +-Wdelete-incomplete c++ and objc++ -Wdelete-non-virtual-dtor c++ -Weffc++ c++ -Werror-implicit-function-declaration deprecated @@ -30,6 +31,7 @@ -Wfunction-elimination fortran -Wimplicit-interface fortran -Wimplicit-procedure fortran +-Winherited-variadic-ctor c++ -Wintrinsic-shadow fortran -Wintrinsics-std fortran -Winvalid-offsetof c++ and objc++ @@ -37,7 +39,6 @@ -Wlarger-than=<number> FIXME: choose something sane? -Wline-truncation fortran -Wliteral-suffix c++ and objc++ --Wliteral-suffix c++ and objc++ -Wlong-long obsolescent -Wnoexcept c++ -Wnon-template-friend c++ @@ -45,17 +46,14 @@ -Wnormalized=<id|nfc|nfkc> FIXME: choose something sane? -Wold-style-cast c++ and objc++ -Woverloaded-virtual c++ --Wpadded FIXME: dunno --Wpadded FIXME maybe? warns about "stabil" member in /usr/include/bits/timex.h +-Wpadded FIXME maybe? warns about "stabil" member in /usr/include/bits/timex.h -Wpedantic FIXME: too strict? -Wpmf-conversions c++ and objc++ -Wproperty-assign-default objc++ -Wprotocol objc++ -Wreal-q-constant fortran -Wrealloc-lhs fortran --Wrealloc-lhs fortran -Wrealloc-lhs-all fortran --Wrealloc-lhs-all fortran -Wredundant-decls FIXME maybe? many _gl_cxxalias_dummy FPs -Wreorder c++ and objc++ -Wselector objc and objc++ @@ -71,15 +69,16 @@ -Wswitch-enum FIXME maybe? borderline. some will want this -Wsynth deprecated -Wtabs fortran --Wtarget-lifetime fortran +-Wtarget-lifetime fortran -Wtraditional obsolescent -Wtraditional-conversion obsolescent -Wundeclared-selector objc and objc++ -Wundef FIXME maybe? too many false positives -Wunderflow fortran --Wunsuffixed-float-constants triggers warning in gnulib's timespec.h +-Wunsuffixed-float-constants triggers warning in gnulib's timespec.h -Wunused-dummy-argument fortran -Wuseless-cast c++ and objc++ --Wuseless-cast c++ and objc++ +-Wvirtual-move-assign c++ -Wzero-as-null-pointer-constant c++ and objc++ +-Wzerotrip fortran -frequire-return-statement go
--- a/m4/manywarnings.m4 Sun Aug 31 19:19:44 2014 -0700 +++ b/m4/manywarnings.m4 Mon Sep 01 01:51:06 2014 -0700 @@ -1,4 +1,4 @@ -# manywarnings.m4 serial 6 +# manywarnings.m4 serial 7 dnl Copyright (C) 2008-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -93,6 +93,14 @@ fi # List all gcc warning categories. + # To compare this list to your installed GCC's, run this Bash command: + # + # comm -3 \ + # <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \ + # <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort | + # grep -v -x -f <( + # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec)) + gl_manywarn_set= for gl_manywarn_item in \ -W \ @@ -111,6 +119,7 @@ -Wcomments \ -Wcoverage-mismatch \ -Wcpp \ + -Wdate-time \ -Wdeprecated \ -Wdeprecated-declarations \ -Wdisabled-optimization \ @@ -150,9 +159,9 @@ -Wnarrowing \ -Wnested-externs \ -Wnonnull \ - -Wnormalized=nfc \ -Wold-style-declaration \ -Wold-style-definition \ + -Wopenmp-simd \ -Woverflow \ -Woverlength-strings \ -Woverride-init \ @@ -203,13 +212,26 @@ -Wvla \ -Wvolatile-register-var \ -Wwrite-strings \ - -fdiagnostics-show-option \ - -funit-at-a-time \ \ ; do gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item" done + # gcc --help=warnings outputs an unusual form for this option; list + # it here so that the above 'comm' command doesn't report a false match. + gl_manywarn_set="$gl_manywarn_set -Wnormalized=nfc" + + # These are needed for older GCC versions. + if test -n "$GCC"; then + case `($CC --version) 2>/dev/null` in + 'gcc (GCC) '[[0-3]].* | \ + 'gcc (GCC) '4.[[0-7]].*) + gl_manywarn_set="$gl_manywarn_set -fdiagnostics-show-option" + gl_manywarn_set="$gl_manywarn_set -funit-at-a-time" + ;; + esac + fi + # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"