After updating the list of _GL_ATTRIBUTE* macros in the Makefile, these
failures are seen:

File lib/areadlink.h lacks a config.h reminder. Needed for: 
_GL_ATTRIBUTE_DEALLOC_FREE
File lib/crc.h lacks a config.h reminder. Needed for: _GL_ATTRIBUTE_PURE
File lib/crc-x86_64.h lacks a config.h reminder. Needed for: _GL_ATTRIBUTE_PURE
File lib/diffseq.h lacks a config.h reminder. Needed for: _GL_GNUC_PREREQ
File lib/gl_sublist.h lacks a config.h reminder. Needed for: 
_GL_ATTRIBUTE_DEALLOC _GL_ATTRIBUTE_RETURNS_NONNULL
File lib/noreturn.h lacks a config.h reminder. Needed for: _Noreturn
File lib/signed-nan.h lacks a config.h reminder. Needed for: _GL_UNUSED
File lib/signed-snan.h lacks a config.h reminder. Needed for: _GL_UNUSED
File lib/snan.h lacks a config.h reminder. Needed for: _GL_UNUSED
File lib/uninorm.in.h lacks a config.h reminder. Needed for: 
_GL_ATTRIBUTE_DEALLOC
File lib/unistr.in.h lacks a config.h reminder. Needed for: 
_GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_MAYBE_UNUSED
File lib/unicase/special-casing.in.h lacks a config.h reminder. Needed for: 
_GL_ATTRIBUTE_NONSTRING

Fixed as follows.


2025-05-07  Bruno Haible  <br...@clisp.org>

        Fix "make sc_check_config_h_reminder" failure.
        * Makefile (config_h_MACROS2): Add _GL_ATTRIBUTE_DEALLOC_FREE,
        _GL_ATTRIBUTE_NONNULL_IF_NONZERO, _GL_ATTRIBUTE_REPRODUCIBLE,
        _GL_ATTRIBUTE_UNSEQUENCED, _GL_ATTRIBUTE_CAPABILITY_TYPE,
        _GL_ATTRIBUTE_ACQUIRE_CAPABILITY, _GL_ATTRIBUTE_RELEASE_CAPABILITY.
        (exclude_file_name_regexp--sc_check_config_h_reminder): New variable.
        (sc_check_config_h_reminder): Use it.
        * lib/areadlink.h: Add <config.h> reminder.
        * lib/crc.h: Likewise.
        * lib/crc-x86_64.h: Likewise.
        * lib/diffseq.h: Likewise.
        * lib/gl_sublist.h: Likewise.
        * lib/signed-nan.h: Likewise.
        * lib/signed-snan.h: Likewise.
        * lib/snan.h: Likewise.
        * lib/unicase/special-casing.in.h: Likewise.

diff --git a/Makefile b/Makefile
index a725c5349e..88f8cd304d 100644
--- a/Makefile
+++ b/Makefile
@@ -157,6 +157,7 @@ config_h_MACROS2 = \
   _GL_ATTRIBUTE_COLD \
   _GL_ATTRIBUTE_CONST \
   _GL_ATTRIBUTE_DEALLOC \
+  _GL_ATTRIBUTE_DEALLOC_FREE \
   _GL_ATTRIBUTE_DEPRECATED \
   _GL_ATTRIBUTE_ERROR \
   _GL_ATTRIBUTE_WARNING \
@@ -171,14 +172,20 @@ config_h_MACROS2 = \
   _GL_ATTRIBUTE_NODISCARD \
   _GL_ATTRIBUTE_NOINLINE \
   _GL_ATTRIBUTE_NONNULL \
+  _GL_ATTRIBUTE_NONNULL_IF_NONZERO \
   _GL_ATTRIBUTE_NONSTRING \
   _GL_ATTRIBUTE_NOTHROW \
   _GL_ATTRIBUTE_PACKED \
   _GL_ATTRIBUTE_PURE \
+  _GL_ATTRIBUTE_REPRODUCIBLE \
   _GL_ATTRIBUTE_RETURNS_NONNULL \
   _GL_ATTRIBUTE_SENTINEL \
+  _GL_ATTRIBUTE_UNSEQUENCED \
   _GL_ATTRIBUTE_UNUSED \
   _GL_UNUSED_LABEL \
+  _GL_ATTRIBUTE_CAPABILITY_TYPE \
+  _GL_ATTRIBUTE_ACQUIRE_CAPABILITY \
+  _GL_ATTRIBUTE_RELEASE_CAPABILITY \
   _GL_BEGIN_C_LINKAGE \
   _GL_END_C_LINKAGE \
   _GL_ASYNC_SAFE \
@@ -212,7 +219,8 @@ config_h_MACROS = \
 # include <config.h>.
 sc_check_config_h_reminder:
        fail=0; \
-       for file in `grep -l -F -w -f <(for macro in $(config_h_MACROS); do 
echo $$macro; done) lib/*.h lib/*/*.h`; do \
+       for file in `grep -l -F -w -f <(for macro in $(config_h_MACROS); do 
echo $$macro; done) lib/*.h lib/*/*.h \
+                    | grep -vE 
'$(exclude_file_name_regexp--sc_check_config_h_reminder)'`; do \
          : "Filter out .h files that are not public header files of their 
respective module."; \
          include_pattern='[<"]'`echo $$file | sed -e 's,^lib/,,' -e 
's,[.]in[.]h,.h,' -e 's,_,[/_],g' -e 's,[.],[.],g'`'[>"]' ; \
          if ./gnulib-tool --extract-include-directive `./gnulib-tool --find 
$$file` | grep "$$include_pattern" >/dev/null; then \
@@ -228,6 +236,8 @@ sc_check_config_h_reminder:
          fi; \
        done; \
        exit $$fail
+exclude_file_name_regexp--sc_check_config_h_reminder = \
+  ^lib/(noreturn\.h|(uninorm|unistr)\.in\.h)
 
 
 # Ensure that .h files that invoke _GL_INLINE_HEADER_BEGIN also invoke
diff --git a/lib/areadlink.h b/lib/areadlink.h
index f3ce9cdb29..feec8a8f85 100644
--- a/lib/areadlink.h
+++ b/lib/areadlink.h
@@ -18,6 +18,11 @@
 
 /* Written by Jim Meyering <j...@meyering.net>  */
 
+/* This file uses _GL_ATTRIBUTE_DEALLOC_FREE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stdlib.h>
 
 #ifdef __cplusplus
diff --git a/lib/crc-x86_64.h b/lib/crc-x86_64.h
index ea8e4b43ed..193156ce27 100644
--- a/lib/crc-x86_64.h
+++ b/lib/crc-x86_64.h
@@ -19,6 +19,11 @@
 #ifndef CRC_X86_64_H
 #define CRC_X86_64_H 1
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 #include <stdint.h>
 
diff --git a/lib/crc.h b/lib/crc.h
index 059de47dd8..1281a50b04 100644
--- a/lib/crc.h
+++ b/lib/crc.h
@@ -19,6 +19,11 @@
 #ifndef CRC_H
 #define CRC_H 1
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 #include <stdint.h>
 
diff --git a/lib/diffseq.h b/lib/diffseq.h
index 9a454a6c91..914bc643bb 100644
--- a/lib/diffseq.h
+++ b/lib/diffseq.h
@@ -77,6 +77,11 @@
      #include "minmax.h"
  */
 
+/* This file uses _GL_GNUC_PREREQ.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Maximum value of type OFFSET.  */
 #ifndef OFFSET_MAX
 # define OFFSET_MAX \
diff --git a/lib/gl_sublist.h b/lib/gl_sublist.h
index 30aa2c8811..15566b687d 100644
--- a/lib/gl_sublist.h
+++ b/lib/gl_sublist.h
@@ -18,6 +18,11 @@
 #ifndef _GL_SUBLIST_H
 #define _GL_SUBLIST_H
 
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include "gl_list.h"
 
 #ifdef __cplusplus
diff --git a/lib/signed-nan.h b/lib/signed-nan.h
index d55429fa66..fcc12d34cf 100644
--- a/lib/signed-nan.h
+++ b/lib/signed-nan.h
@@ -17,6 +17,11 @@
 #ifndef _SIGNED_NAN_H
 #define _SIGNED_NAN_H
 
+/* This file uses _GL_UNUSED.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <math.h>
 
 #include "nan.h"
diff --git a/lib/signed-snan.h b/lib/signed-snan.h
index 43e505cffe..ad0f4cddf3 100644
--- a/lib/signed-snan.h
+++ b/lib/signed-snan.h
@@ -17,6 +17,11 @@
 #ifndef _SIGNED_SNAN_H
 #define _SIGNED_SNAN_H
 
+/* This file uses _GL_UNUSED.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include "signed-nan.h"
 #include "snan.h"
 
diff --git a/lib/snan.h b/lib/snan.h
index 2621b38218..1cd46c0e76 100644
--- a/lib/snan.h
+++ b/lib/snan.h
@@ -17,6 +17,11 @@
 #ifndef _SNAN_H
 #define _SNAN_H
 
+/* This file uses _GL_UNUSED.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <float.h>
 #include <limits.h>
 #include <math.h>
diff --git a/lib/unicase/special-casing.in.h b/lib/unicase/special-casing.in.h
index 81ec05acbc..6ea5f8009e 100644
--- a/lib/unicase/special-casing.in.h
+++ b/lib/unicase/special-casing.in.h
@@ -23,6 +23,11 @@
    License and of the GNU General Public License along with this
    program.  If not, see <https://www.gnu.org/licenses/>.  */
 
+/* This file uses _GL_ATTRIBUTE_NONSTRING.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 
 #ifdef __cplusplus




Reply via email to