bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] manywarnings: update C warnings for GCC 12


From: Paul Eggert
Subject: [PATCH] manywarnings: update C warnings for GCC 12
Date: Thu, 12 May 2022 15:14:54 -0700

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  <eggert@cs.ucla.edu>
+
+       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  <eggert@cs.ucla.edu>
 
        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.36.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]