From efa0065f1682f53fb15ad427555ddedec6ec51eb Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 12 May 2022 15:13:04 -0700 Subject: [PATCH] manywarnings: update C warnings for GCC 12 Adjust for C programs compiled by GCC 12. (A C++ expert still needs to look at manywarnings-c++.m4.) * build-aux/gcc-warning.spec: Add warnings introduced in GCC 12. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbidi-chars=any,ucn and -Wuse-after-free=3. Although not enabled by -Wall or -Wextra they seem suitable for Gnulib-using C code. --- ChangeLog | 10 ++++++++++ build-aux/gcc-warning.spec | 26 +++++++++++++++++++++++++- m4/manywarnings.m4 | 2 ++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8cc17d8d14..6ed8a50735 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2022-05-12 Paul Eggert + + manywarnings: update C warnings for GCC 12 + Adjust for C programs compiled by GCC 12. + (A C++ expert still needs to look at manywarnings-c++.m4.) + * build-aux/gcc-warning.spec: Add warnings introduced in GCC 12. + * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbidi-chars=any,ucn + and -Wuse-after-free=3. Although not enabled by -Wall or -Wextra + they seem suitable for Gnulib-using C code. + 2022-05-11 Paul Eggert parse-datetime: remove Emacs cruft diff --git a/build-aux/gcc-warning.spec b/build-aux/gcc-warning.spec index c0d49f2a6e..cbcbc87f9a 100644 --- a/build-aux/gcc-warning.spec +++ b/build-aux/gcc-warning.spec @@ -32,15 +32,21 @@ -Wanalyzer-shift-count-negative enabled by -fanalyzer -Wanalyzer-shift-count-overflow enabled by -fanalyzer -Wanalyzer-stale-setjmp-buffer implied by -fanalyzer --Wanalyzer-tainted-array-index FIXME maybe? too much noise +-Wanalyzer-tainted-allocation-size FIXME requires -fanalyzer-checker=taint +-Wanalyzer-tainted-array-index FIXME requires -fanalyzer-checker=taint +-Wanalyzer-tainted-divisor FIXME requires -fanalyzer-checker=taint +-Wanalyzer-tainted-offset FIXME requires -fanalyzer-checker=taint +-Wanalyzer-tainted-size FIXME requires -fanalyzer-checker=taint -Wanalyzer-too-complex enabled by -fanalyzer -Wanalyzer-unsafe-call-within-signal-handler enabled by -fanalyzer -Wanalyzer-use-after-free enabled by -fanalyzer -Wanalyzer-use-of-pointer-in-stale-stack-frame enabled by -fanalyzer +-Wanalyzer-use-of-uninitialized-value enabled by -fanalyzer -Wanalyzer-write-to-const enabled by -fanalyzer -Wanalyzer-write-to-string-literal enabled by -fanalyzer -Warray-bounds covered by -Warray-bounds= -Warray-bounds=<0,2> handled specially by gl_MANYWARN_ALL_GCC +-Warray-compare enabled by -Wall -Warray-parameter enabled by -Wall -Warray-parameter=<0,2> enabled by -Wall -Warray-temporaries fortran @@ -49,6 +55,8 @@ -Wattribute-alias=<0,2> handled specially by gl_MANYWARN_ALL_GCC -Wattribute-warning default -Wattributes default +-Wbidi-chars handled specially by gl_MANYWARN_ALL_GCC +-Wbidi-chars= handled specially by gl_MANYWARN_ALL_GCC -Wbool-compare enabled by -Wall -Wbool-operation enabled by -Wall -Wbuiltin-declaration-mismatch default @@ -56,10 +64,15 @@ -Wc++-compat only useful for code meant to be compiled by a C++ compiler -Wc++0x-compat c++ -Wc++11-compat c++ +-Wc++11-extensions c++ -Wc++14-compat c++ +-Wc++14-extensions c++ -Wc++17-compat c++ +-Wc++17-extensions c++ -Wc++1z-compat c++ -Wc++20-compat c++ +-Wc++20-extensions c++ +-Wc++23-extensions c++ -Wc++2a-compat c++ -Wc-binding-type fortran -Wc11-c2x-compat c compatibility @@ -86,11 +99,14 @@ -Wconversion FIXME maybe? too much noise; encourages bad changes -Wconversion-extra fortran -Wconversion-null c++ and objc++ +-Wcoverage-invalid-line-number default if --coverage -Wcoverage-mismatch default -Wcpp default -Wctad-maybe-unsupported c++ and objc++ -Wctor-dtor-privacy c++ -Wdangling-else enabled by -Wparentheses +-Wdangling-pointer enabled by -Wall +-Wdangling-pointer=<0,2> enabled by -Wall -Wdeclaration-after-statement needed only for pre-C99, so obsolete -Wdelete-incomplete c++ and objc++ -Wdelete-non-virtual-dtor c++ @@ -147,12 +163,14 @@ -Wimplicit-procedure fortran -Winaccessible-base c++ and objc++ -Wincompatible-pointer-types default +-Winfinite-recursion enabled by -Wall -Winherited-variadic-ctor c++ -Winit-list-lifetime c++ and objc++ -Wint-conversion default -Wint-in-bool-context enabled by -Wall -Wint-to-pointer-cast default -Winteger-division fortran +-Winterference-size c++ -Wintrinsic-shadow fortran -Wintrinsics-std fortran -Winvalid-imported-macros c++ and objc++ @@ -181,6 +199,8 @@ -Wmissing-noreturn obsolescent -Wmissing-parameter-type enabled by -Wextra -Wmissing-profile default +-Wmissing-requires default, c++ +-Wmissing-template-keyword default, c++ -Wmultichar default -Wmultiple-inheritance c++ and objc++ -Wmultistatement-macros enabled by -Wall @@ -205,6 +225,7 @@ -Wodr default -Wold-style-cast c++ and objc++ -Wold-style-declaration enabled by -Wextra +-Wopenacc-parallelism OpenACC -Woverflow default -Woverloaded-virtual c++ -Woverride-init enabled by -Wextra @@ -290,6 +311,7 @@ -Wtraditional obsolescent -Wtraditional-conversion obsolescent -Wtrigraphs enabled by -Wall +-Wtrivial-auto-var-init subsumed by -Wmaybe-uninitialized -Wtsan default -Wtype-limits enabled by -Wextra -Wundeclared-selector objc and objc++ @@ -311,6 +333,8 @@ -Wunused-result enabled by -Wunused -Wunused-value enabled by -Wunused -Wunused-variable enabled by -Wunused +-Wuse-after-free handled specially by gl_MANYWARN_ALL_GCC +-Wuse-after-free=<0,3> handled specially by gl_MANYWARN_ALL_GCC -Wuse-without-only fortran -Wuseless-cast c++ and objc++ -Wvarargs default diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4 index 253393e51b..f4b5853f02 100644 --- a/m4/manywarnings.m4 +++ b/m4/manywarnings.m4 @@ -167,11 +167,13 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)], # them here so that the above 'comm' command doesn't report a false match. gl_AS_VAR_APPEND([$1], [' -Warray-bounds=2']) gl_AS_VAR_APPEND([$1], [' -Wattribute-alias=2']) + gl_AS_VAR_APPEND([$1], [' -Wbidi-chars=any,ucn']) gl_AS_VAR_APPEND([$1], [' -Wformat-overflow=2']) gl_AS_VAR_APPEND([$1], [' -Wformat=2']) gl_AS_VAR_APPEND([$1], [' -Wformat-truncation=2']) gl_AS_VAR_APPEND([$1], [' -Wimplicit-fallthrough=5']) gl_AS_VAR_APPEND([$1], [' -Wshift-overflow=2']) + gl_AS_VAR_APPEND([$1], [' -Wuse-after-free=3']) gl_AS_VAR_APPEND([$1], [' -Wunused-const-variable=2']) gl_AS_VAR_APPEND([$1], [' -Wvla-larger-than=4031']) -- 2.39.5