summaryrefslogtreecommitdiff
path: root/m4/manywarnings.m4
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2014-09-01 01:51:06 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2014-09-01 01:51:37 -0700
commit157c42eff782e18fd921b2815f5869c1f53edde7 (patch)
tree181369ad8350856258522fc429d684ce7fe0464d /m4/manywarnings.m4
parent1f5bc60c497c2b801681a3362c214fcf6a68f24a (diff)
downloadgnulib-157c42eff782e18fd921b2815f5869c1f53edde7.tar.gz
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.
Diffstat (limited to 'm4/manywarnings.m4')
-rw-r--r--m4/manywarnings.m430
1 files changed, 26 insertions, 4 deletions
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index e1cee6cf9d..3e6dd215ce 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -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 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
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 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
-Wcomments \
-Wcoverage-mismatch \
-Wcpp \
+ -Wdate-time \
-Wdeprecated \
-Wdeprecated-declarations \
-Wdisabled-optimization \
@@ -150,9 +159,9 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
-Wnarrowing \
-Wnested-externs \
-Wnonnull \
- -Wnormalized=nfc \
-Wold-style-declaration \
-Wold-style-definition \
+ -Wopenmp-simd \
-Woverflow \
-Woverlength-strings \
-Woverride-init \
@@ -203,13 +212,26 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
-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"