diff options
Diffstat (limited to 'gnulib-m4/stddef_h.m4')
-rw-r--r-- | gnulib-m4/stddef_h.m4 | 62 |
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]) |