summaryrefslogtreecommitdiff
path: root/gnulib-m4/stddef_h.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-m4/stddef_h.m4')
-rw-r--r--gnulib-m4/stddef_h.m462
1 files changed, 36 insertions, 26 deletions
diff --git a/gnulib-m4/stddef_h.m4 b/gnulib-m4/stddef_h.m4
index c7f75b37..d52d5494 100644
--- a/gnulib-m4/stddef_h.m4
+++ b/gnulib-m4/stddef_h.m4
@@ -1,9 +1,10 @@
# stddef_h.m4
-# serial 17
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# serial 23
+dnl Copyright (C) 2009-2025 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.
+dnl This file is offered as-is, without any warranty.
dnl A placeholder for <stddef.h>, for platforms that have issues.
@@ -63,22 +64,28 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
GL_GENERATE_STDDEF_H=true
fi
- AC_CACHE_CHECK([for unreachable],
- [gl_cv_func_unreachable],
+ AC_CACHE_CHECK([for unreachable in C],
+ [gl_cv_c_func_unreachable],
[AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <stddef.h>
]],
[[unreachable ();
]])],
- [gl_cv_func_unreachable=yes],
- [gl_cv_func_unreachable=no])
+ [gl_cv_c_func_unreachable=yes],
+ [gl_cv_c_func_unreachable=no])
])
- if test $gl_cv_func_unreachable = no; then
+ if test $gl_cv_c_func_unreachable = no; then
GL_GENERATE_STDDEF_H=true
+ HAVE_C_UNREACHABLE=0
+ else
+ HAVE_C_UNREACHABLE=1
fi
+ AC_SUBST([HAVE_C_UNREACHABLE])
+ dnl Provide gl_unreachable() unconditionally.
+ GL_GENERATE_STDDEF_H=true
- dnl https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114869
+ dnl https://gcc.gnu.org/PR114869
AC_CACHE_CHECK([whether nullptr_t needs <stddef.h>],
[gl_cv_nullptr_t_needs_stddef],
[AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[nullptr_t x;]],
@@ -89,24 +96,27 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
GL_GENERATE_STDDEF_H=true
fi
- AC_CACHE_CHECK([for clean definition of __STDC_VERSION_STDDEF_H__],
- [gl_cv_clean_version_stddef],
- [AC_PREPROC_IFELSE(
- [AC_LANG_SOURCE(
- [[/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114870 */
- #include <stddef.h>
- #undef __STDC_VERSION_STDDEF_H__
- #include <time.h>
- #ifdef __STDC_VERSION_STDDEF_H__
- # error "<time.h> defines __STDC_VERSION_STDDEF_H__"
- #endif
- ]])],
- [gl_cv_clean_version_stddef=yes],
- [gl_cv_clean_version_stddef=no])])
- if test "$gl_cv_clean_version_stddef" = no; then
- STDDEF_NOT_IDEMPOTENT=1
- GL_GENERATE_STDDEF_H=true
- fi
+ dnl https://gcc.gnu.org/PR114870
+ dnl affects GCC 13.3 and 14.2.
+ AC_CACHE_CHECK([whether <stddef.h> is idempotent],
+ [gl_cv_stddef_idempotent],
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [[
+ #if \
+ ((__GNUC__ == 13 && __GNUC_MINOR__ <= 3) \
+ || (__GNUC__ == 14 && __GNUC_MINOR__ <= 2))
+ #error "bug 114870 is present"
+ #endif
+ ]])],
+ [gl_cv_stddef_idempotent="guessing yes"],
+ [gl_cv_stddef_idempotent="guessing no"])
+ ])
+ case "$gl_cv_stddef_idempotent" in
+ *yes) ;;
+ *) STDDEF_NOT_IDEMPOTENT=1
+ GL_GENERATE_STDDEF_H=true
+ ;;
+ esac
if $GL_GENERATE_STDDEF_H; then
gl_NEXT_HEADERS([stddef.h])