]> Savannah Git Hosting - gnulib.git/commitdiff
getopt-posix, crypto/md5-buffer: Fix __GNUC_PREREQ re clang.
authorBruno Haible <bruno@clisp.org>
Sat, 21 Sep 2024 21:10:34 +0000 (23:10 +0200)
committerBruno Haible <bruno@clisp.org>
Tue, 1 Oct 2024 21:01:28 +0000 (23:01 +0200)
* lib/getopt-cdefs.in.h (__GNUC_PREREQ): Copy definition from
lib/libc-config.h.
* lib/md5.h (__GNUC_PREREQ): Likewise.

ChangeLog
lib/getopt-cdefs.in.h
lib/md5.h

index 91af9adb59389862f5131cc9a34abb3fa5f8a6fa..15a6910355828f0718f55e97e63337cee12762c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2024-09-21  Bruno Haible  <bruno@clisp.org>
+
+       getopt-posix, crypto/md5-buffer: Fix __GNUC_PREREQ re clang.
+       * lib/getopt-cdefs.in.h (__GNUC_PREREQ): Copy definition from
+       lib/libc-config.h.
+       * lib/md5.h (__GNUC_PREREQ): Likewise.
+
 2024-09-21  Henrik Lindström  <henrik@lxm.se>
 
        getopt-posix: Improve definition of __GNUC_PREREQ.
index 95f06045f5e4cb6cfc4a02a998055690dacdb33c..9d704a9f6e5567f4ac35920bfaa0b250984796e6 100644 (file)
 # endif
 #endif
 
+#if defined __clang__
+  /* clang really only groks GNU C 4.2, regardless of its value of __GNUC__.  */
+# undef __GNUC_PREREQ
+# define __GNUC_PREREQ(maj, min) ((maj) < 4 + ((min) <= 2))
+#endif
 #ifndef __GNUC_PREREQ
 # if defined __GNUC__ && defined __GNUC_MINOR__
-# define __GNUC_PREREQ(maj, min) \
-        ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#  define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__))
 # else
 #  define __GNUC_PREREQ(maj, min) 0
 # endif
index 2f470703f5c0815d23b7070c46cf938227d8caa8..94cc6994cc1c8b8512716e802ee4607f46f26f9f 100644 (file)
--- a/lib/md5.h
+++ b/lib/md5.h
 #define MD5_DIGEST_SIZE 16
 #define MD5_BLOCK_SIZE 64
 
+#if defined __clang__
+  /* clang really only groks GNU C 4.2, regardless of its value of __GNUC__.  */
+# undef __GNUC_PREREQ
+# define __GNUC_PREREQ(maj, min) ((maj) < 4 + ((min) <= 2))
+#endif
 #ifndef __GNUC_PREREQ
 # if defined __GNUC__ && defined __GNUC_MINOR__
-#  define __GNUC_PREREQ(maj, min)                                       \
-  ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#  define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__))
 # else
 #  define __GNUC_PREREQ(maj, min) 0
 # endif