bug-gnulib
[Top][All Lists]
Advanced

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

ialloc, gethrxtime: Restore GCC diagnostics options


From: Bruno Haible
Subject: ialloc, gethrxtime: Restore GCC diagnostics options
Date: Thu, 13 Apr 2023 14:27:28 +0200

When a header file invokes _GL_INLINE_HEADER_BEGIN but not
_GL_INLINE_HEADER_END, the effect is that two pragmas

    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \

remain in effect until the end of the compilation unit. Which is not
desirable.

This patch adds a syntax-check against this mistake, and fixes the two
existing offenders.


2023-04-13  Bruno Haible  <bruno@clisp.org>

        ialloc, gethrxtime: Restore GCC diagnostics options.
        * lib/ialloc.h: Invoke _GL_INLINE_HEADER_END.
        * lib/xtime.h: Likewise.
        * Makefile (sc_check_GL_INLINE_HEADER_use): New rule.

diff --git a/Makefile b/Makefile
index 76e3b5cc54..d0906b2315 100644
--- a/Makefile
+++ b/Makefile
@@ -227,6 +227,19 @@ sc_check_config_h_reminder:
        exit $$fail
 
 
+# Ensure that .h files that invoke _GL_INLINE_HEADER_BEGIN also invoke
+# _GL_INLINE_HEADER_END.  Otherwise, some GCC diagnostics remain turned off
+# for the rest of the compilation unit.
+sc_check_GL_INLINE_HEADER_use:
+       fail=0; \
+       for file in `grep -l -F -w _GL_INLINE_HEADER_BEGIN lib/*.h lib/*/*.h`; 
do \
+         grep -l -F -w _GL_INLINE_HEADER_END $$file >/dev/null \
+           || { echo "File $$file lacks an invocation of 
_GL_INLINE_HEADER_END."; \
+                fail=1; \
+              }; \
+       done; \
+       exit $$fail
+
 # Ensure that the copyright statements in files and in the module descriptions
 # are consistent.
 sc_check_copyright:
diff --git a/lib/ialloc.h b/lib/ialloc.h
index 8d49887b6a..22f57a47d8 100644
--- a/lib/ialloc.h
+++ b/lib/ialloc.h
@@ -112,4 +112,6 @@ ireallocarray (void *p, idx_t n, idx_t s)
 }
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif
diff --git a/lib/xtime.h b/lib/xtime.h
index 84a8a5db9a..50eb4f421e 100644
--- a/lib/xtime.h
+++ b/lib/xtime.h
@@ -87,4 +87,6 @@ xtime_nsec (xtime_t t)
 }
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif






reply via email to

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