summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-aux/gcc-warning.spec85
-rw-r--r--m4/manywarnings.m4153
2 files changed, 173 insertions, 65 deletions
diff --git a/build-aux/gcc-warning.spec b/build-aux/gcc-warning.spec
new file mode 100644
index 0000000000..74c6503b9b
--- /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
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index 864fc85198..2760efb3f2 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -81,95 +81,118 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
gl_manywarn_set=
for gl_manywarn_item in \
- -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 \
+ -Wabi \
+ -Waddress \
+ -Wall \
+ -Warray-bounds \
+ -Wattributes \
-Wbad-function-cast \
- -Wc++-compat \
- -Wcast-qual \
- -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 \
+ -Wcast-align \
+ -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