From efa0065f1682f53fb15ad427555ddedec6ec51eb Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 12 May 2022 15:13:04 -0700 Subject: 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. --- build-aux/gcc-warning.spec | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'build-aux') 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 -- cgit v1.2.1