* build-aux/gcc-warning.spec: Add options introduced in GCC 16.
Remove -Wfree-labels (not limited to objc), -Wuseless-cast
(not limited to c++ and objc++).
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wfree-labels,
-Wkeyword-macro (new to GCC 16), -Wuseless-casts.
---
 ChangeLog                  | 7 +++++++
 build-aux/gcc-warning.spec | 8 ++++++--
 m4/manywarnings.m4         | 3 +++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9dbc2f82e9..d5474423b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2026-05-01  Paul Eggert  <[email protected]>
 
+       manywarnings: GCC 16 changes
+       * build-aux/gcc-warning.spec: Add options introduced in GCC 16.
+       Remove -Wfree-labels (not limited to objc), -Wuseless-cast
+       (not limited to c++ and objc++).
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wfree-labels,
+       -Wkeyword-macro, -Wuseless-casts.
+
        manywarnings: simplify C warning audits
        * build-aux/gcc-warning.spec: Omit many c++, objc, obcj++,
        fortran warnings as we no longer need to track them here.
diff --git a/build-aux/gcc-warning.spec b/build-aux/gcc-warning.spec
index 151beba027..07b0f3e1e3 100644
--- a/build-aux/gcc-warning.spec
+++ b/build-aux/gcc-warning.spec
@@ -53,6 +53,7 @@
 -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-throw-of-unexpected-type    enabled by -fanalyzer
 -Wanalyzer-too-complex                 enabled by -fanalyzer
 -Wanalyzer-undefined-behavior-ptrdiff  enabled by -fanalyzer
 -Wanalyzer-undefined-behavior-strtok   enabled by -fanalyzer
@@ -75,6 +76,7 @@
 -Wattribute-alias=<0,2>                        handled specially by 
gl_MANYWARN_ALL_GCC
 -Wattribute-warning                    default
 -Wattributes                           default
+-Wauto-profile                         useful only when profiling
 -Wbidi-chars                           handled specially by gl_MANYWARN_ALL_GCC
 -Wbidi-chars=                          handled specially by gl_MANYWARN_ALL_GCC
 -Wbool-compare                         enabled by -Wall
@@ -112,6 +114,7 @@
 -Wdeprecated                           default
 -Wdeprecated-declarations              default
 -Wdeprecated-non-prototype             c compatibility
+-Wdeprecated-openmp                    default
 -Wdesignated-init                      default
 -Wdisabled-optimization                        warns about compiler not about 
program
 -Wdiscarded-array-qualifiers           default
@@ -142,7 +145,6 @@
 -Wformat=<0,2>                         gcc --help=warnings artifact
 -Wframe-address                                enabled by -Wall
 -Wframe-larger-than=<byte-size>                FIXME: choose something sane?
--Wfree-labels                          c and objc compatibility
 -Wfree-nonheap-object                  default
 -Whardened                             default
 -Wheader-guard                         enabled by -Wall
@@ -185,6 +187,7 @@
 -Wmissing-parameter-type               enabled by -Wextra
 -Wmissing-profile                      default
 -Wmultichar                            default
+-Wmultiple-parameter-fwd-decl-lists    enabled by -Wextra
 -Wmultistatement-macros                        enabled by -Wall
 -Wmusttail-local-addr                  default
 -Wnarrowing                            enabled by -Wall
@@ -275,7 +278,9 @@
 -Wunterminated-string-initialization   enabled by -Wextra
 -Wunused                               enabled by -Wall
 -Wunused-but-set-parameter             enabled by -Wextra -Wunused
+-Wunused-but-set-parameter=<0,3>       enabled by -Wextra -Wunused
 -Wunused-but-set-variable              enabled by -Wunused
+-Wunused-but-set-variable=<0,3>                enabled by -Wall
 -Wunused-const-variable                        covered by 
-Wunused-const-variable=2
 -Wunused-const-variable=<0,2>          gcc --help=warnings artifact
 -Wunused-function                      enabled by -Wunused
@@ -286,7 +291,6 @@
 -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
--Wuseless-cast                         c++ and objc++
 -Wvarargs                              default
 -Wvla-larger-than=<number>             handled specially by gl_MANYWARN_ALL_GCC
 -Wvla-parameter                                enabled by -Wall
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index 88e7ad6646..bb8f4feb0e 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -113,9 +113,11 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C
     -Wextra \
     -Wflex-array-member-not-at-end \
     -Wformat-signedness \
+    -Wfree-labels \
     -Winit-self \
     -Winline \
     -Winvalid-pch \
+    -Wkeyword-macro \
     -Wlogical-op \
     -Wmissing-declarations \
     -Wmissing-include-dirs \
@@ -145,6 +147,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C
     -Wunknown-pragmas \
     -Wunsafe-loop-optimizations \
     -Wunused-macros \
+    -Wuseless-casts \
     -Wvariadic-macros \
     -Wvector-operation-performance \
     -Wvla \
-- 
2.54.0


Reply via email to