From 3f14b27dec6f4a590d8ae0ffcbb7cf7714815a05 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 3 May 2019 10:55:25 -0700 Subject: Port manywarnings to GCC 9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build-aux/gcc-warning.spec: Sort. Add -Wattribute-alias, -Wc11-c2x-compat, -Wcast-result (for the D programming language), -Wclass-conversion, -Wdeprecated-copy, -Wdeprecated-copy-dtor, -Winit-list-lifetime, -Wpessimizing-move, -Wprio-ctor-dtor, -Wredundant-move. Adjust to minor wording changes in GCC 9’s --help=warnings output. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wabsolute-value, -Waddress-of-packed-member, -Wattribute-warning, -Wcannot-profile, -Wmissing-profile. Change -Wattribute-alias to -Wattribute-alias=2. --- ChangeLog | 13 +++++++++++++ build-aux/gcc-warning.spec | 32 +++++++++++++++++++++++--------- m4/manywarnings.m4 | 9 +++++++-- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index cf4116bf30..92aa64a4f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2019-05-03 Paul Eggert + + Port manywarnings to GCC 9 + * build-aux/gcc-warning.spec: Sort. Add -Wattribute-alias, + -Wc11-c2x-compat, -Wcast-result (for the D programming language), + -Wclass-conversion, -Wdeprecated-copy, -Wdeprecated-copy-dtor, + -Winit-list-lifetime, -Wpessimizing-move, -Wprio-ctor-dtor, + -Wredundant-move. Adjust to minor wording changes in GCC 9’s + --help=warnings output. + * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wabsolute-value, + -Waddress-of-packed-member, -Wattribute-warning, -Wcannot-profile, + -Wmissing-profile. Change -Wattribute-alias to -Wattribute-alias=2. + 2019-04-30 Paul Eggert Sync lib/mktime-internal.h from glibc diff --git a/build-aux/gcc-warning.spec b/build-aux/gcc-warning.spec index 8c0a3dc750..723d287afa 100644 --- a/build-aux/gcc-warning.spec +++ b/build-aux/gcc-warning.spec @@ -1,23 +1,25 @@ # options to filter out, and why --all-warnings alias for -Wall --extra-warnings alias for -Wextra +-Wabi this is now a no-op -Wabi-tag c++ -Wabi= c++ --Wabi this is now a no-op -Waggregate-return obsolescent -Waliasing fortran -Walign-commons fortran -Waligned-new=[none|global|all] c++ --Walloca we like alloca in small doses --Walloca-larger-than= FIXME: choose something sane? -Walloc-size-larger-than= handled specially by gl_MANYWARN_ALL_GCC -Walloc-zero Gnulib fixes this problem +-Walloca we like alloca in small doses +-Walloca-larger-than= FIXME: choose something sane? -Wampersand fortran -Wargument-mismatch fortran -Warray-bounds covered by -Warray-bounds= -Warray-bounds=<0,2> handled specially by gl_MANYWARN_ALL_GCC -Warray-temporaries fortran -Wassign-intercept objc/objc++ +-Wattribute-alias covered by -Wattribute-alias=2 +-Wattribute-alias=<0,2> handled specially by gl_MANYWARN_ALL_GCC -Wc++-compat only useful for code meant to be compiled by a C++ compiler -Wc++0x-compat c++ -Wc++11-compat c++ @@ -25,13 +27,16 @@ -Wc++17-compat c++ -Wc++1z-compat c++ -Wc-binding-type fortran +-Wc11-c2x-compat c compatibility -Wc90-c99-compat c compatibility -Wc99-c11-compat c compatibility -Wcast-qual FIXME maybe? too much noise; encourages bad changes +-Wcast-result D -Wcatch-value c++ -Wcatch-value=<0,3> c++ -Wcharacter-truncation fortran -Wchkp deprecated +-Wclass-conversion c++ and objc++ -Wclass-memaccess c++ -Wcompare-reals fortran -Wconditionally-supported c++ and objc++ @@ -42,6 +47,8 @@ -Wdeclaration-after-statement FIXME: do not want. others may -Wdelete-incomplete c++ and objc++ -Wdelete-non-virtual-dtor c++ +-Wdeprecated-copy c++ and objc++ +-Wdeprecated-copy-dtor c++ and objc++ -Wdo-subscript fortran -Weffc++ c++ -Werror-implicit-function-declaration deprecated @@ -49,25 +56,26 @@ -Wfloat-conversion FIXME maybe? borderline. some will want this -Wfloat-equal FIXME maybe? borderline. some will want this -Wformat covered by -Wformat=2 --Wformat=<0,2> gcc --help=warnings artifact -Wformat-overflow<0,2> gcc --help=warnings artifact -Wformat-overflow=<0,2> handled specially by gl_MANYWARN_ALL_GCC -Wformat-truncation covered by -Wformat-truncation=2 -Wformat-truncation=<0,2> handled specially by gl_MANYWARN_ALL_GCC --Wframe-larger-than= FIXME: choose something sane? +-Wformat=<0,2> gcc --help=warnings artifact +-Wframe-larger-than= FIXME: choose something sane? -Wfunction-elimination fortran -Wimplicit-fallthrough covered by -Wimplicit-fallthrough=2 -Wimplicit-fallthrough=<0,5> handled specially by gl_MANYWARN_ALL_GCC -Wimplicit-interface fortran -Wimplicit-procedure fortran -Winherited-variadic-ctor c++ +-Winit-list-lifetime c++ and objc++ -Winteger-division fortran -Wintrinsic-shadow fortran -Wintrinsics-std fortran -Winvalid-offsetof c++ and objc++ -Wjump-misses-init only useful for code meant to be compiled by a C++ compiler -Wlarger-than- gcc --help=warnings artifact --Wlarger-than= FIXME: choose something sane? +-Wlarger-than= FIXME: choose something sane? -Wline-truncation fortran -Wliteral-suffix c++ and objc++ -Wlong-long obsolescent @@ -76,6 +84,9 @@ -Wmissing-noreturn obsolescent -Wmultiple-inheritance c++ and objc++ -Wnamespaces c++ +-Wno-alloc-size-larger-than see -Walloc-size-larger-than +-Wno-alloca-larger-than see -Walloca-larger-than +-Wno-vla-larger-than see -Wvla-larger-than -Wnoexcept c++ -Wnoexcept-type c++ -Wnon-template-friend c++ @@ -87,31 +98,34 @@ -Woverride-init-side-effects c++ and objc++ -Wpadded FIXME maybe? warns about "stabil" member in /usr/include/bits/timex.h -Wpedantic FIXME: too strict? +-Wpessimizing-move c++ and objc++ -Wplacement-new c++ -Wplacement-new=<0,2> c++ -Wpmf-conversions c++ and objc++ +-Wprio-ctor-dtor c++ -Wproperty-assign-default objc++ -Wprotocol objc++ -Wreal-q-constant fortran -Wrealloc-lhs fortran -Wrealloc-lhs-all fortran -Wredundant-decls FIXME maybe? many _gl_cxxalias_dummy FPs +-Wredundant-move c++ and objc++ -Wregister c++ and objc++ -Wreorder c++ and objc++ -Wselector objc and objc++ +-Wshadow-compatible-local covered by -Wshadow -Wshadow-ivar objc +-Wshadow-local covered by -Wshadow -Wshadow=compatible-local covered by -Wshadow --Wshadow-compatible-local covered by -Wshadow -Wshadow=global covered by -Wshadow -Wshadow=local covered by -Wshadow --Wshadow-local covered by -Wshadow -Wshift-overflow covered by -Wshift-overflow=2 -Wshift-overflow=<0,2> gcc --help=warnings artifact -Wsign-compare FIXME maybe? borderline. some will want this -Wsign-conversion FIXME maybe? borderline. some will want this -Wsign-promo c++ and objc++ -Wsized-deallocation c++ and objc++ --Wstack-usage= FIXME: choose something sane? +-Wstack-usage= FIXME: choose something sane? -Wstrict-aliasing=<0,3> FIXME: choose something sane? -Wstrict-null-sentinel c++ and objc++ -Wstrict-overflow=<0,5> FIXME: choose something sane? diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4 index e0488a5cb3..6bb9f8f84e 100644 --- a/m4/manywarnings.m4 +++ b/m4/manywarnings.m4 @@ -1,4 +1,4 @@ -# manywarnings.m4 serial 17 +# manywarnings.m4 serial 18 dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -112,16 +112,19 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], gl_manywarn_set= for gl_manywarn_item in -fno-common \ -W \ + -Wabsolute-value \ -Waddress \ + -Waddress-of-packed-member \ -Waggressive-loop-optimizations \ -Wall \ - -Wattribute-alias \ + -Wattribute-warning \ -Wattributes \ -Wbad-function-cast \ -Wbool-compare \ -Wbool-operation \ -Wbuiltin-declaration-mismatch \ -Wbuiltin-macro-redefined \ + -Wcannot-profile \ -Wcast-align \ -Wcast-align=strict \ -Wcast-function-type \ @@ -186,6 +189,7 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wmissing-field-initializers \ -Wmissing-include-dirs \ -Wmissing-parameter-type \ + -Wmissing-profile \ -Wmissing-prototypes \ -Wmultichar \ -Wmultistatement-macros \ @@ -292,6 +296,7 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], AC_MSG_RESULT([$gl_alloc_max]) gl_manywarn_set="$gl_manywarn_set -Walloc-size-larger-than=$gl_alloc_max" gl_manywarn_set="$gl_manywarn_set -Warray-bounds=2" + gl_manywarn_set="$gl_manywarn_set -Wattribute-alias=2" gl_manywarn_set="$gl_manywarn_set -Wformat-overflow=2" gl_manywarn_set="$gl_manywarn_set -Wformat-truncation=2" gl_manywarn_set="$gl_manywarn_set -Wimplicit-fallthrough=5" -- cgit v1.2.1