changeset 17070:56a92ebec4a3

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))
author Jim Meyering <meyering@redhat.com>
date Wed, 30 Nov 2011 14:25:35 +0100
parents d639e9aa0198
children ca68607d0dce
files build-aux/gcc-warning.spec m4/manywarnings.m4
diffstat 2 files changed, 173 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/build-aux/gcc-warning.spec
@@ -0,0 +1,85 @@
+# options to filter out, and why
+--all-warnings				alias for -Wall
+--extra-warnings			alias for -Wextra
+-Waggregate-return			obsolescent
+-Waliasing				fortran
+-Walign-commons				fortran
+-Wampersand				fortran
+-Warray-temporaries			fortran
+-Wassign-intercept			objc/objc++
+-Wc++-compat				FIXME maybe? borderline.  some will want this
+-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
+-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-non-virtual-dtor		c++
+-Weffc++				c++
+-Werror-implicit-function-declaration	deprecated
+-Wfloat-equal				FIXME maybe? borderline.  some will want this
+-Wformat				covered by -Wformat=2
+-Wformat=				gcc --help=warnings artifact
+-Wfunction-elimination			fortran
+-Wimplicit-interface			fortran
+-Wimplicit-procedure			fortran
+-Wintrinsic-shadow			fortran
+-Wintrinsics-std			fortran
+-Winvalid-offsetof			c++ and objc++
+-Wlarger-than-				gcc --help=warnings artifact
+-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++
+-Wnon-virtual-dtor			c++
+-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
+-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++
+-Wsign-compare				FIXME maybe? borderline.  some will want this
+-Wsign-conversion			FIXME maybe? borderline.  some will want this
+-Wsign-promo				c++ and objc++
+-Wstack-usage=				FIXME: choose something sane?
+-Wstrict-aliasing=			FIXME: choose something sane?
+-Wstrict-null-sentinel			c++ and objc++
+-Wstrict-overflow=			FIXME: choose something sane?
+-Wstrict-selector-match			objc and objc++
+-Wsurprising				fortran
+-Wswitch-enum				FIXME maybe? borderline.  some will want this
+-Wsynth					deprecated
+-Wtabs					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
+-Wunused-dummy-argument			fortran
+-Wuseless-cast				c++ and objc++
+-Wuseless-cast                          c++ and objc++
+-Wzero-as-null-pointer-constant		c++ and objc++
+-frequire-return-statement		go
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -81,95 +81,118 @@
 
   gl_manywarn_set=
   for gl_manywarn_item in \
+    -W \
+    -Wabi \
+    -Waddress \
     -Wall \
-    -W \
-    -Wformat-y2k \
-    -Wformat-nonliteral \
-    -Wformat-security \
-    -Winit-self \
-    -Wmissing-include-dirs \
-    -Wswitch-default \
-    -Wswitch-enum \
-    -Wunused \
-    -Wunknown-pragmas \
-    -Wstrict-aliasing \
-    -Wstrict-overflow \
-    -Wsystem-headers \
-    -Wfloat-equal \
-    -Wtraditional \
-    -Wtraditional-conversion \
-    -Wdeclaration-after-statement \
-    -Wundef \
-    -Wshadow \
-    -Wunsafe-loop-optimizations \
-    -Wpointer-arith \
+    -Warray-bounds \
+    -Wattributes \
     -Wbad-function-cast \
-    -Wc++-compat \
-    -Wcast-qual \
+    -Wbuiltin-macro-redefined \
     -Wcast-align \
-    -Wwrite-strings \
-    -Wconversion \
-    -Wsign-conversion \
-    -Wlogical-op \
-    -Waggregate-return \
-    -Wstrict-prototypes \
-    -Wold-style-definition \
-    -Wmissing-prototypes \
-    -Wmissing-declarations \
-    -Wmissing-noreturn \
-    -Wmissing-format-attribute \
-    -Wpacked \
-    -Wpadded \
-    -Wredundant-decls \
-    -Wnested-externs \
-    -Wunreachable-code \
-    -Winline \
-    -Winvalid-pch \
-    -Wlong-long \
-    -Wvla \
-    -Wvolatile-register-var \
-    -Wdisabled-optimization \
-    -Wstack-protector \
-    -Woverlength-strings \
-    -Wbuiltin-macro-redefined \
-    -Wmudflap \
-    -Wpacked-bitfield-compat \
-    -Wsync-nand \
-    ; do
-    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
-  done
-  # The following are not documented in the manual but are included in
-  # output from gcc --help=warnings.
-  for gl_manywarn_item in \
-    -Wattributes \
+    -Wchar-subscripts \
+    -Wclobbered \
+    -Wcomment \
+    -Wcomments \
     -Wcoverage-mismatch \
-    -Wunused-macros \
-    ; do
-    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
-  done
-  # More warnings from gcc 4.6.2 --help=warnings.
-  for gl_manywarn_item in \
-    -Wabi \
     -Wcpp \
     -Wdeprecated \
     -Wdeprecated-declarations \
+    -Wdisabled-optimization \
     -Wdiv-by-zero \
     -Wdouble-promotion \
+    -Wempty-body \
     -Wendif-labels \
+    -Wenum-compare \
     -Wextra \
     -Wformat-contains-nul \
     -Wformat-extra-args \
+    -Wformat-nonliteral \
+    -Wformat-security \
+    -Wformat-y2k \
     -Wformat-zero-length \
     -Wformat=2 \
+    -Wfree-nonheap-object \
+    -Wignored-qualifiers \
+    -Wimplicit \
+    -Wimplicit-function-declaration \
+    -Wimplicit-int \
+    -Winit-self \
+    -Winline \
+    -Wint-to-pointer-cast \
+    -Winvalid-memory-model \
+    -Winvalid-pch \
+    -Wjump-misses-init \
+    -Wlogical-op \
+    -Wmain \
+    -Wmaybe-uninitialized \
+    -Wmissing-braces \
+    -Wmissing-declarations \
+    -Wmissing-field-initializers \
+    -Wmissing-format-attribute \
+    -Wmissing-include-dirs \
+    -Wmissing-noreturn \
+    -Wmissing-parameter-type \
+    -Wmissing-prototypes \
+    -Wmudflap \
     -Wmultichar \
+    -Wnarrowing \
+    -Wnested-externs \
+    -Wnonnull \
     -Wnormalized=nfc \
+    -Wold-style-declaration \
+    -Wold-style-definition \
     -Woverflow \
+    -Woverlength-strings \
+    -Woverride-init \
+    -Wpacked \
+    -Wpacked-bitfield-compat \
+    -Wparentheses \
+    -Wpointer-arith \
+    -Wpointer-sign \
     -Wpointer-to-int-cast \
     -Wpragmas \
+    -Wreturn-type \
+    -Wsequence-point \
+    -Wshadow \
+    -Wsizeof-pointer-memaccess \
+    -Wstack-protector \
+    -Wstrict-aliasing \
+    -Wstrict-overflow \
+    -Wstrict-prototypes \
     -Wsuggest-attribute=const \
+    -Wsuggest-attribute=format \
     -Wsuggest-attribute=noreturn \
     -Wsuggest-attribute=pure \
+    -Wswitch \
+    -Wswitch-default \
+    -Wsync-nand \
+    -Wsystem-headers \
     -Wtrampolines \
+    -Wtrigraphs \
+    -Wtype-limits \
+    -Wuninitialized \
+    -Wunknown-pragmas \
+    -Wunreachable-code \
+    -Wunsafe-loop-optimizations \
+    -Wunused \
+    -Wunused-but-set-parameter \
+    -Wunused-but-set-variable \
+    -Wunused-function \
+    -Wunused-label \
+    -Wunused-local-typedefs \
+    -Wunused-macros \
+    -Wunused-parameter \
+    -Wunused-result \
+    -Wunused-value \
+    -Wunused-variable \
+    -Wvarargs \
+    -Wvariadic-macros \
+    -Wvector-operation-performance \
+    -Wvla \
+    -Wvolatile-register-var \
+    -Wwrite-strings \
+    \
     ; do
     gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
   done