From 78f7aef9304979d7796dd7d3fc5a2d92d1da0ca6 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 23 Apr 2023 08:53:59 -0700 Subject: manywarnings: update C warnings for GCC 13 Adjust for C programs compiled by GCC 13. (A C++ expert still needs to look at manywarnings-c++.m4.) * build-aux/gcc-warning.spec: Add warnings introduced in GCC 13. * doc/manywarnings.texi (manywarnings): Document flex arrays. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -fstrict-flex-arrays and -Wstrict-flex-arrays as these should be suitable for Gnulib-using code. --- build-aux/gcc-warning.spec | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'build-aux/gcc-warning.spec') diff --git a/build-aux/gcc-warning.spec b/build-aux/gcc-warning.spec index cbcbc87f9a..09350012ba 100644 --- a/build-aux/gcc-warning.spec +++ b/build-aux/gcc-warning.spec @@ -18,25 +18,45 @@ -Walloca we like alloca in small doses -Walloca-larger-than= FIXME: choose something sane? -Wampersand fortran +-Wanalyzer-allocation-size enabled by -fanalyzer +-Wanalyzer-deref-before-check enabled by -fanalyzer -Wanalyzer-double-fclose enabled by -fanalyzer -Wanalyzer-double-free enabled by -fanalyzer -Wanalyzer-exposure-through-output-file enabled by -fanalyzer +-Wanalyzer-exposure-through-uninit-copy enabled by -fanalyzer +-Wanalyzer-fd-access-mode-mismatch enabled by -fanalyzer +-Wanalyzer-fd-double-close enabled by -fanalyzer +-Wanalyzer-fd-leak enabled by -fanalyzer +-Wanalyzer-fd-phase-mismatch enabled by -fanalyzer +-Wanalyzer-fd-type-mismatch enabled by -fanalyzer +-Wanalyzer-fd-use-after-close enabled by -fanalyzer +-Wanalyzer-fd-use-without-check enabled by -fanalyzer -Wanalyzer-file-leak enabled by -fanalyzer -Wanalyzer-free-of-non-heap enabled by -fanalyzer +-Wanalyzer-imprecise-fp-arithmetic enabled by -fanalyzer +-Wanalyzer-infinite-recursion enabled by -fanalyzer +-Wanalyzer-jump-through-null enabled by -fanalyzer -Wanalyzer-malloc-leak enabled by -fanalyzer -Wanalyzer-mismatching-deallocation enabled by -fanalyzer -Wanalyzer-null-argument enabled by -fanalyzer -Wanalyzer-null-dereference enabled by -fanalyzer +-Wanalyzer-out-of-bounds enabled by -fanalyzer -Wanalyzer-possible-null-argument enabled by -fanalyzer -Wanalyzer-possible-null-dereference enabled by -fanalyzer +-Wanalyzer-putenv-of-auto-var enabled by -fanalyzer -Wanalyzer-shift-count-negative enabled by -fanalyzer -Wanalyzer-shift-count-overflow enabled by -fanalyzer -Wanalyzer-stale-setjmp-buffer implied by -fanalyzer -Wanalyzer-tainted-allocation-size FIXME requires -fanalyzer-checker=taint -Wanalyzer-tainted-array-index FIXME requires -fanalyzer-checker=taint +-Wanalyzer-tainted-assertion 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-va-arg-type-mismatch enabled by -fanalyzer +-Wanalyzer-va-list-exhausted enabled by -fanalyzer +-Wanalyzer-va-list-leak enabled by -fanalyzer +-Wanalyzer-va-list-use-after-va-end enabled by -fanalyzer -Wanalyzer-too-complex enabled by -fanalyzer -Wanalyzer-unsafe-call-within-signal-handler enabled by -fanalyzer -Wanalyzer-use-after-free enabled by -fanalyzer @@ -85,6 +105,7 @@ -Wcast-result D -Wcatch-value c++ -Wcatch-value=<0,3> c++ +-Wchanges-meaning c++ -Wchar-subscripts enabled by -Wall -Wcharacter-truncation fortran -Wchkp deprecated @@ -95,6 +116,7 @@ -Wcomment enabled by -Wall -Wcomments alias for -Wcomment -Wcompare-reals fortran +-Wcomplain-wrong-lang default -Wconditionally-supported c++ and objc++ -Wconversion FIXME maybe? too much noise; encourages bad changes -Wconversion-extra fortran @@ -107,6 +129,7 @@ -Wdangling-else enabled by -Wparentheses -Wdangling-pointer enabled by -Wall -Wdangling-pointer=<0,2> enabled by -Wall +-Wdangling-reference c++ and objc++ -Wdeclaration-after-statement needed only for pre-C99, so obsolete -Wdelete-incomplete c++ and objc++ -Wdelete-non-virtual-dtor c++ @@ -126,6 +149,7 @@ -Wempty-body enabled by -Wextra -Wenum-compare enabled by -Wall -Wenum-conversion enabled by -Wextra +-Wenum-int-mismatch enabled by -Wall -Wendif-labels default -Werror-implicit-function-declaration deprecated -Wexceptions c++ and objc++ @@ -173,9 +197,11 @@ -Winterference-size c++ -Wintrinsic-shadow fortran -Wintrinsics-std fortran +-Winvalid-constexpr c++ -Winvalid-imported-macros c++ and objc++ -Winvalid-memory-model default -Winvalid-offsetof c++ and objc++ +-Winvalid-utf8 enabled by -finput-charset=UTF-8 -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? @@ -228,6 +254,7 @@ -Wopenacc-parallelism OpenACC -Woverflow default -Woverloaded-virtual c++ +-Woverloaded-virtual=<0,2> c++ -Woverride-init enabled by -Wextra -Woverride-init-side-effects c++ and objc++ -Woverwrite-recursive fortran @@ -263,6 +290,7 @@ -Wscalar-storage-order default -Wselector objc and objc++ -Wsequence-point enabled by -Wall +-Wself-move c++ and objc++ -Wshadow-compatible-local covered by -Wshadow -Wshadow-ivar objc -Wshadow-local covered by -Wshadow @@ -318,6 +346,7 @@ -Wundef FIXME maybe? too many false positives -Wundefined-do-loop fortran -Wunderflow fortran +-Wunicode default -Wunreachable-code obsolescent no-op -Wunsuffixed-float-constants triggers warning in gnulib's timespec.h -Wunused enabled by -Wall @@ -345,6 +374,7 @@ -Wvla-parameter enabled by -Wall -Wvolatile c++ and objc++ -Wvolatile-register-var enabled by -Wall +-Wxor-used-as-pow default -Wzero-as-null-pointer-constant c++ and objc++ -Wzero-length-bounds enabled by -Wall -Wzerotrip fortran -- cgit v1.2.1