]> Savannah Git Hosting - gnulib.git/commitdiff
manywarnings: update C warnings for GCC 14
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 24 Apr 2024 06:18:07 +0000 (23:18 -0700)
committerBruno Haible <bruno@clisp.org>
Fri, 26 Apr 2024 08:58:44 +0000 (10:58 +0200)
Adjust for C programs compiled by GCC 14.
(A C++ expert still needs to look at manywarnings-c++.m4.)
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 14.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add -Wflex-array-member-not-at-end, -Wmissing-variable-declarations.

ChangeLog
build-aux/gcc-warning.spec
m4/manywarnings.m4

index 6c0f21a136251fe825df2252241d710c1b49f2eb..5ab21dd75a43099d2823ed37e7147c6b4e52fee1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-04-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       manywarnings: update C warnings for GCC 14
+       Adjust for C programs compiled by GCC 14.
+       (A C++ expert still needs to look at manywarnings-c++.m4.)
+       * build-aux/gcc-warning.spec: Add warnings introduced in GCC 14.
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
+       Add -Wflex-array-member-not-at-end, -Wmissing-variable-declarations.
+
 2024-04-19  Bruno Haible  <bruno@clisp.org>
 
        getlogin_r tests: Fix compilation error on some OpenSolaris derivatives.
index 09350012bab31780692d30d991c61e61561700a4..e12fbe776ed9f4bc7f81ad88cf0fcd505a2caf03 100644 (file)
@@ -13,6 +13,7 @@
 -Waliasing                             fortran
 -Walign-commons                                fortran
 -Waligned-new=[none|global|all]                c++
+-Walloc-size                           enabled by -Wextra
 -Walloc-size-larger-than=<bytes>       defaults to PTRDIFF_MAX
 -Walloc-zero                           Gnulib fixes this problem
 -Walloca                               we like alloca in small doses
@@ -34,6 +35,7 @@
 -Wanalyzer-file-leak                   enabled by -fanalyzer
 -Wanalyzer-free-of-non-heap            enabled by -fanalyzer
 -Wanalyzer-imprecise-fp-arithmetic     enabled by -fanalyzer
+-Wanalyzer-infinite-loop               enabled by -fanalyzer
 -Wanalyzer-infinite-recursion          enabled by -fanalyzer
 -Wanalyzer-jump-through-null           enabled by -fanalyzer
 -Wanalyzer-malloc-leak                 enabled by -fanalyzer
 -Wanalyzer-null-argument               enabled by -fanalyzer
 -Wanalyzer-null-dereference            enabled by -fanalyzer
 -Wanalyzer-out-of-bounds               enabled by -fanalyzer
+-Wanalyzer-overlapping-buffers         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-symbol-too-complex          warns about compiler not about program
 -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-undefined-behavior-strtok   enabled by -fanalyzer
 -Wanalyzer-va-arg-type-mismatch                enabled by -fanalyzer
 -Wanalyzer-va-list-exhausted           enabled by -fanalyzer
 -Wanalyzer-va-list-leak                        enabled by -fanalyzer
 -Wc++20-compat                         c++
 -Wc++20-extensions                     c++
 -Wc++23-extensions                     c++
+-Wc++26-extensions                     c++
 -Wc++2a-compat                         c++
 -Wc-binding-type                       fortran
--Wc11-c2x-compat                       c compatibility
+-Wc11-c23-compat                       c compatibility
 -Wc90-c99-compat                       c compatibility
 -Wc99-c11-compat                       c compatibility
+-Wcalloc-transposed-args               enabled by -Wextra
 -Wcannot-profile                       default
 -Wcast-align                           enabled by -Wcast-align=strict
 -Wcast-function-type                   enabled by -Wextra
 -Wcomma-subscript                      c++ and objc++
 -Wcomment                              enabled by -Wall
 -Wcomments                             alias for -Wcomment
+-Wcompare-distinct-pointer-types       default
 -Wcompare-reals                                fortran
 -Wcomplain-wrong-lang                  default
 -Wconditionally-supported              c++ and objc++
 -Wconversion                           FIXME maybe? too much noise; encourages bad changes
+-Wcoverage-too-many-conditions         default
 -Wconversion-extra                     fortran
 -Wconversion-null                      c++ and objc++
 -Wcoverage-invalid-line-number         default if --coverage
 -Wdangling-pointer=<0,2>               enabled by -Wall
 -Wdangling-reference                   c++ and objc++
 -Wdeclaration-after-statement          needed only for pre-C99, so obsolete
+-Wdeclaration-missing-parameter-type   default
 -Wdelete-incomplete                    c++ and objc++
 -Wdelete-non-virtual-dtor              c++
 -Wdeprecated                           default
 -Wdiv-by-zero                          default
 -Wduplicate-decl-specifier             enabled by -Wall
 -Weffc++                               c++
+-Welaborated-enum-base                 default, c++11+
 -Wempty-body                           enabled by -Wextra
 -Wenum-compare                         enabled by -Wall
 -Wenum-conversion                      enabled by -Wextra
 -Wframe-larger-than=<byte-size>                FIXME: choose something sane?
 -Wfree-nonheap-object                  default
 -Wfunction-elimination                 fortran
+-Wglobal-module                                default, c++ and objc++
+-Whardened                             default
 -Whsa                                  default
 -Wif-not-aligned                       default
 -Wignored-attributes                   default
 -Wmisleading-indentation               enabled by -Wall
 -Wmismatched-dealloc                   default
 -Wmismatched-new-delete                        default, c++ and objc++
+-Wmismatched-special-enum              d
 -Wmismatched-tags                      c++ and objc++
 -Wmissing-attributes                   enabled by -Wall
 -Wmissing-braces                       enabled by -Wall
 -Wold-style-cast                       c++ and objc++
 -Wold-style-declaration                        enabled by -Wextra
 -Wopenacc-parallelism                  OpenACC
+-Wopenmp                               default
 -Woverflow                             default
 -Woverloaded-virtual                   c++
 -Woverloaded-virtual=<0,2>             c++
 -Wreorder                              c++ and objc++
 -Wrestrict                             enabled by -Wall
 -Wreturn-local-addr                    default
+-Wreturn-mismatch                      default
 -Wreturn-type                          enabled by -Wall
 -Wscalar-storage-order                 default
 -Wselector                             objc and objc++
 -Wstringop-overread                    default
 -Wstringop-truncation                  default
 -Wsubobject-linkage                    c++ and objc++
+-Wsuggest-attribute=returns_nonnull    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114833
 -Wsuggest-override                     c++ and objc++
 -Wsurprising                           fortran
 -Wswitch                               enabled by -Wall
 -Wtabs                                 fortran
 -Wtarget-lifetime                      fortran
 -Wtautological-compare                 enabled by -Wall
+-Wtemplate-id-cdtor                    default, c++ and objc++
 -Wtemplates                            c++ and objc++
 -Wterminate                            c++ and objc++
 -Wtraditional                          obsolescent
index a06f26f672e1d994bd62e61f4048143589c84df2..ff6679e5f3a510049bf009b1ac2fea2f812a39c2 100644 (file)
@@ -1,5 +1,5 @@
-# manywarnings.m4 serial 24
-dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
+# manywarnings.m4 serial 24.1
+dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -110,6 +110,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
     -Wduplicated-cond \
     -Wextra \
     -Wformat-signedness \
+    -Wflex-array-member-not-at-end \
     -Winit-self \
     -Winline \
     -Winvalid-pch \
@@ -117,6 +118,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
     -Wmissing-declarations \
     -Wmissing-include-dirs \
     -Wmissing-prototypes \
+    -Wmissing-variable-declarations \
     -Wnested-externs \
     -Wnull-dereference \
     -Wold-style-definition \