From dd44da552f3f158a55b04fbe11ef1d0faf5ee5ba Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 30 Nov 2011 14:25:35 +0100 Subject: [PATCH] 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)) --- build-aux/gcc-warning.spec | 85 +++++++++++++++++++++++++ m4/manywarnings.m4 | 153 ++++++++++++++++++++++++++------------------- 2 files changed, 173 insertions(+), 65 deletions(-) create mode 100644 build-aux/gcc-warning.spec diff --git a/build-aux/gcc-warning.spec b/build-aux/gcc-warning.spec new file mode 100644 index 000000000..74c6503b9 --- /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= 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= 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 864fc8519..2760efb3f 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 -- 2.11.0