Refer to C23 in place of C2X in glibc

WG14 decided to use the name C23 as the informal name of the next
revision of the C standard (notwithstanding the publication date in
2024).  Update references to C2X in glibc to use the C23 name.

This is intended to update everything *except* where it involves
renaming files (the changes involving renaming tests are intended to
be done separately).  In the case of the _ISOC2X_SOURCE feature test
macro - the only user-visible interface involved - support for that
macro is kept for backwards compatibility, while adding
_ISOC23_SOURCE.

Tested for x86_64.
This commit is contained in:
Joseph Myers 2024-02-01 11:02:01 +00:00
parent 7c8df0b944
commit 42cc619dfb
79 changed files with 300 additions and 278 deletions

7
NEWS
View File

@ -14,6 +14,13 @@ Major new features:
in order to support unsigned __int128 and/or unsigned _BitInt(N) operands in order to support unsigned __int128 and/or unsigned _BitInt(N) operands
with arbitrary precisions when supported by the target. with arbitrary precisions when supported by the target.
* The GNU C Library now supports a feature test macro _ISOC23_SOURCE to
enable features from the ISO C23 standard. Only some features from
this standard are supported by the GNU C Library. The older name
_ISOC2X_SOURCE is still supported. Features from C23 are also enabled
by _GNU_SOURCE, or by compiling with the GCC options -std=c23,
-std=gnu23, -std=c2x or -std=gnu2x.
Deprecated and removed features, and other changes affecting compatibility: Deprecated and removed features, and other changes affecting compatibility:
[Add deprecations, removals and changes affecting compatibility here] [Add deprecations, removals and changes affecting compatibility here]

View File

@ -54,7 +54,7 @@ fenv_t;
/* If the default argument is used we use this value. */ /* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1l) #define FE_DFL_ENV ((const fenv_t *) -1l)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -44,23 +44,23 @@
/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
macro. Most but not all symbols enabled by that macro in TS macro. Most but not all symbols enabled by that macro in TS
18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 18661-1 are enabled unconditionally in C23. In C23, the symbols in
Annex F still require a new feature test macro Annex F still require a new feature test macro
__STDC_WANT_IEC_60559_EXT__ instead (C2X does not define __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define
__STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
18661-1 are not included in C2X (and thus should depend on 18661-1 are not included in C23 (and thus should depend on
__STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are
enabled). enabled).
__GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
18661-1 not included in C2X. 18661-1 not included in C23.
__GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS
18661-1 that are also included in C2X (with no feature test macro 18661-1 that are also included in C23 (with no feature test macro
required in C2X). required in C23).
__GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
that are included in C2X but conditional on that are included in C23 but conditional on
__STDC_WANT_IEC_60559_EXT__. (There are currently no features __STDC_WANT_IEC_60559_EXT__. (There are currently no features
conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
18661-1.) */ 18661-1.) */
@ -70,11 +70,11 @@
#else #else
# define __GLIBC_USE_IEC_60559_BFP_EXT 0 # define __GLIBC_USE_IEC_60559_BFP_EXT 0
#endif #endif
#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23
#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X) #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23)
# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1
#else #else
# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0
#endif #endif
#undef __GLIBC_USE_IEC_60559_EXT #undef __GLIBC_USE_IEC_60559_EXT
#if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__
@ -86,18 +86,18 @@
/* ISO/IEC TS 18661-4:2015 defines the /* ISO/IEC TS 18661-4:2015 defines the
__STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
functions, the symbols from this TS are enabled unconditionally in functions, the symbols from this TS are enabled unconditionally in
C2X. */ C23. */
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT #undef __GLIBC_USE_IEC_60559_FUNCS_EXT
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__
# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1
#else #else
# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
#endif #endif
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23
#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X) #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23)
# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1
#else #else
# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0
#endif #endif
/* ISO/IEC TS 18661-3:2015 defines the /* ISO/IEC TS 18661-3:2015 defines the

View File

@ -24,7 +24,8 @@
__STRICT_ANSI__ ISO Standard C. __STRICT_ANSI__ ISO Standard C.
_ISOC99_SOURCE Extensions to ISO C89 from ISO C99. _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
_ISOC11_SOURCE Extensions to ISO C99 from ISO C11. _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
_ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. _ISOC23_SOURCE Extensions to ISO C99 from ISO C23.
_ISOC2X_SOURCE Old name for _ISOC23_SOURCE.
__STDC_WANT_LIB_EXT2__ __STDC_WANT_LIB_EXT2__
Extensions to ISO C99 from TR 27431-2:2010. Extensions to ISO C99 from TR 27431-2:2010.
__STDC_WANT_IEC_60559_BFP_EXT__ __STDC_WANT_IEC_60559_BFP_EXT__
@ -34,7 +35,7 @@
__STDC_WANT_IEC_60559_TYPES_EXT__ __STDC_WANT_IEC_60559_TYPES_EXT__
Extensions to ISO C11 from TS 18661-3:2015. Extensions to ISO C11 from TS 18661-3:2015.
__STDC_WANT_IEC_60559_EXT__ __STDC_WANT_IEC_60559_EXT__
ISO C2X interfaces defined only in Annex F. ISO C23 interfaces defined only in Annex F.
_POSIX_SOURCE IEEE Std 1003.1. _POSIX_SOURCE IEEE Std 1003.1.
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
@ -148,10 +149,10 @@
#undef __USE_GNU #undef __USE_GNU
#undef __USE_FORTIFY_LEVEL #undef __USE_FORTIFY_LEVEL
#undef __KERNEL_STRICT_NAMES #undef __KERNEL_STRICT_NAMES
#undef __GLIBC_USE_ISOC2X #undef __GLIBC_USE_ISOC23
#undef __GLIBC_USE_DEPRECATED_GETS #undef __GLIBC_USE_DEPRECATED_GETS
#undef __GLIBC_USE_DEPRECATED_SCANF #undef __GLIBC_USE_DEPRECATED_SCANF
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
/* Suppress kernel-name space pollution unless user expressedly asks /* Suppress kernel-name space pollution unless user expressedly asks
for it. */ for it. */
@ -198,6 +199,13 @@
# define _DEFAULT_SOURCE 1 # define _DEFAULT_SOURCE 1
#endif #endif
/* Remap the old name _ISOC2X_SOURCE to _ISOC23_SOURCE. */
#ifdef _ISOC2X_SOURCE
# undef _ISOC2X_SOURCE
# undef _ISOC23_SOURCE
# define _ISOC23_SOURCE 1
#endif
/* If _GNU_SOURCE was defined by the user, turn on all the other features. */ /* If _GNU_SOURCE was defined by the user, turn on all the other features. */
#ifdef _GNU_SOURCE #ifdef _GNU_SOURCE
# undef _ISOC95_SOURCE # undef _ISOC95_SOURCE
@ -206,8 +214,8 @@
# define _ISOC99_SOURCE 1 # define _ISOC99_SOURCE 1
# undef _ISOC11_SOURCE # undef _ISOC11_SOURCE
# define _ISOC11_SOURCE 1 # define _ISOC11_SOURCE 1
# undef _ISOC2X_SOURCE # undef _ISOC23_SOURCE
# define _ISOC2X_SOURCE 1 # define _ISOC23_SOURCE 1
# undef _POSIX_SOURCE # undef _POSIX_SOURCE
# define _POSIX_SOURCE 1 # define _POSIX_SOURCE 1
# undef _POSIX_C_SOURCE # undef _POSIX_C_SOURCE
@ -231,37 +239,37 @@
#if (defined _DEFAULT_SOURCE \ #if (defined _DEFAULT_SOURCE \
|| (!defined __STRICT_ANSI__ \ || (!defined __STRICT_ANSI__ \
&& !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \ && !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \
&& !defined _ISOC2X_SOURCE \ && !defined _ISOC23_SOURCE \
&& !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \ && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \
&& !defined _XOPEN_SOURCE)) && !defined _XOPEN_SOURCE))
# undef _DEFAULT_SOURCE # undef _DEFAULT_SOURCE
# define _DEFAULT_SOURCE 1 # define _DEFAULT_SOURCE 1
#endif #endif
/* This is to enable the ISO C2X extension. */ /* This is to enable the ISO C23 extension. */
#if (defined _ISOC2X_SOURCE \ #if (defined _ISOC23_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L)) || (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L))
# define __GLIBC_USE_ISOC2X 1 # define __GLIBC_USE_ISOC23 1
#else #else
# define __GLIBC_USE_ISOC2X 0 # define __GLIBC_USE_ISOC23 0
#endif #endif
/* This is to enable the ISO C11 extension. */ /* This is to enable the ISO C11 extension. */
#if (defined _ISOC11_SOURCE || defined _ISOC2X_SOURCE \ #if (defined _ISOC11_SOURCE || defined _ISOC23_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L)) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L))
# define __USE_ISOC11 1 # define __USE_ISOC11 1
#endif #endif
/* This is to enable the ISO C99 extension. */ /* This is to enable the ISO C99 extension. */
#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ #if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
|| defined _ISOC2X_SOURCE \ || defined _ISOC23_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
# define __USE_ISOC99 1 # define __USE_ISOC99 1
#endif #endif
/* This is to enable the ISO C90 Amendment 1:1995 extension. */ /* This is to enable the ISO C90 Amendment 1:1995 extension. */
#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ #if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
|| defined _ISOC2X_SOURCE \ || defined _ISOC23_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L)) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L))
# define __USE_ISOC95 1 # define __USE_ISOC95 1
#endif #endif
@ -465,15 +473,15 @@
# define __GLIBC_USE_DEPRECATED_SCANF 0 # define __GLIBC_USE_DEPRECATED_SCANF 0
#endif #endif
/* ISO C2X added support for a 0b or 0B prefix on binary constants as /* ISO C23 added support for a 0b or 0B prefix on binary constants as
inputs to strtol-family functions (base 0 or 2). This macro is inputs to strtol-family functions (base 0 or 2). This macro is
used to condition redirection in headers to allow that redirection used to condition redirection in headers to allow that redirection
to be disabled when building those functions, despite _GNU_SOURCE to be disabled when building those functions, despite _GNU_SOURCE
being defined. */ being defined. */
#if __GLIBC_USE (ISOC2X) #if __GLIBC_USE (ISOC23)
# define __GLIBC_USE_C2X_STRTOL 1 # define __GLIBC_USE_C23_STRTOL 1
#else #else
# define __GLIBC_USE_C2X_STRTOL 0 # define __GLIBC_USE_C23_STRTOL 0
#endif #endif
/* Get definitions of __STDC_* predefined macros, if the compiler has /* Get definitions of __STDC_* predefined macros, if the compiler has

View File

@ -142,7 +142,7 @@
/* The integer width macros are not defined by GCC's <limits.h> before /* The integer width macros are not defined by GCC's <limits.h> before
GCC 7, or if _GNU_SOURCE rather than GCC 7, or if _GNU_SOURCE rather than
__STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. */ __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. */
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
# ifndef CHAR_WIDTH # ifndef CHAR_WIDTH
# define CHAR_WIDTH 8 # define CHAR_WIDTH 8
# endif # endif
@ -179,9 +179,9 @@
#endif /* Use IEC_60559_BFP_EXT. */ #endif /* Use IEC_60559_BFP_EXT. */
/* The macros for _Bool are not defined by GCC's <limits.h> before GCC /* The macros for _Bool are not defined by GCC's <limits.h> before GCC
11, or if _GNU_SOURCE is defined rather than enabling C2x support 11, or if _GNU_SOURCE is defined rather than enabling C23 support
with -std. */ with -std. */
#if __GLIBC_USE (ISOC2X) #if __GLIBC_USE (ISOC23)
# ifndef BOOL_MAX # ifndef BOOL_MAX
# define BOOL_MAX 1 # define BOOL_MAX 1
# endif # endif

View File

@ -115,7 +115,7 @@ libc_hidden_proto (__isoc23_sscanf)
libc_hidden_proto (__isoc23_vsscanf) libc_hidden_proto (__isoc23_vsscanf)
libc_hidden_proto (__isoc23_vfscanf) libc_hidden_proto (__isoc23_vfscanf)
/* Internal uses of sscanf should call the C2X-compliant version. /* Internal uses of sscanf should call the C23-compliant version.
Unfortunately, symbol redirection is not transitive, so the Unfortunately, symbol redirection is not transitive, so the
__REDIRECT in the public header does not link up with the above __REDIRECT in the public header does not link up with the above
libc_hidden_proto. Bridge the gap with a macro. */ libc_hidden_proto. Bridge the gap with a macro. */

View File

@ -53,8 +53,8 @@ libc_hidden_proto (__isoc23_strtoul_l)
libc_hidden_proto (__isoc23_strtoll_l) libc_hidden_proto (__isoc23_strtoll_l)
libc_hidden_proto (__isoc23_strtoull_l) libc_hidden_proto (__isoc23_strtoull_l)
#if __GLIBC_USE (C2X_STRTOL) #if __GLIBC_USE (C23_STRTOL)
/* Redirect internal uses of these functions to the C2X versions; the /* Redirect internal uses of these functions to the C23 versions; the
redirection in the installed header does not work with redirection in the installed header does not work with
libc_hidden_proto. */ libc_hidden_proto. */
# undef strtol # undef strtol

View File

@ -53,8 +53,8 @@ libc_hidden_proto (__isoc23_wcstoul_l)
libc_hidden_proto (__isoc23_wcstoll_l) libc_hidden_proto (__isoc23_wcstoll_l)
libc_hidden_proto (__isoc23_wcstoull_l) libc_hidden_proto (__isoc23_wcstoull_l)
#if __GLIBC_USE (C2X_STRTOL) #if __GLIBC_USE (C23_STRTOL)
/* Redirect internal uses of these functions to the C2X versions; the /* Redirect internal uses of these functions to the C23 versions; the
redirection in the installed header does not work with redirection in the installed header does not work with
libc_hidden_proto. */ libc_hidden_proto. */
# undef wcstol # undef wcstol

View File

@ -28,7 +28,7 @@ __LDBL_REDIR_DECL (vprintf)
__LDBL_REDIR_DECL (vsprintf) __LDBL_REDIR_DECL (vsprintf)
#if !__GLIBC_USE (DEPRECATED_SCANF) #if !__GLIBC_USE (DEPRECATED_SCANF)
# if defined __LDBL_COMPAT # if defined __LDBL_COMPAT
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (fscanf, __nldbl___isoc23_fscanf) __LDBL_REDIR1_DECL (fscanf, __nldbl___isoc23_fscanf)
__LDBL_REDIR1_DECL (scanf, __nldbl___isoc23_scanf) __LDBL_REDIR1_DECL (scanf, __nldbl___isoc23_scanf)
__LDBL_REDIR1_DECL (sscanf, __nldbl___isoc23_sscanf) __LDBL_REDIR1_DECL (sscanf, __nldbl___isoc23_sscanf)
@ -38,7 +38,7 @@ __LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf)
__LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf) __LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf)
# endif # endif
# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (fscanf, __isoc23_fscanfieee128) __LDBL_REDIR1_DECL (fscanf, __isoc23_fscanfieee128)
__LDBL_REDIR1_DECL (scanf, __isoc23_scanfieee128) __LDBL_REDIR1_DECL (scanf, __isoc23_scanfieee128)
__LDBL_REDIR1_DECL (sscanf, __isoc23_sscanfieee128) __LDBL_REDIR1_DECL (sscanf, __isoc23_sscanfieee128)
@ -64,7 +64,7 @@ __LDBL_REDIR_DECL (vsnprintf)
#ifdef __USE_ISOC99 #ifdef __USE_ISOC99
# if !__GLIBC_USE (DEPRECATED_SCANF) # if !__GLIBC_USE (DEPRECATED_SCANF)
# if defined __LDBL_COMPAT # if defined __LDBL_COMPAT
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc23_vfscanf) __LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc23_vfscanf)
__LDBL_REDIR1_DECL (vscanf, __nldbl___isoc23_vscanf) __LDBL_REDIR1_DECL (vscanf, __nldbl___isoc23_vscanf)
__LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc23_vsscanf) __LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc23_vsscanf)
@ -74,7 +74,7 @@ __LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf)
__LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf) __LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf)
# endif # endif
# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (vfscanf, __isoc23_vfscanfieee128) __LDBL_REDIR1_DECL (vfscanf, __isoc23_vfscanfieee128)
__LDBL_REDIR1_DECL (vscanf, __isoc23_vscanfieee128) __LDBL_REDIR1_DECL (vscanf, __isoc23_vscanfieee128)
__LDBL_REDIR1_DECL (vsscanf, __isoc23_vsscanfieee128) __LDBL_REDIR1_DECL (vsscanf, __isoc23_vsscanfieee128)

View File

@ -139,7 +139,7 @@ typedef __fpos64_t fpos64_t;
#define FOPEN_MAX 16 #define FOPEN_MAX 16
#if __GLIBC_USE (ISOC2X) #if __GLIBC_USE (ISOC23)
/* Maximum length of printf output for a NaN. */ /* Maximum length of printf output for a NaN. */
# define _PRINTF_NAN_LEN_MAX 4 # define _PRINTF_NAN_LEN_MAX 4
#endif #endif
@ -437,7 +437,7 @@ extern int sscanf (const char *__restrict __s,
#include <bits/floatn.h> #include <bits/floatn.h>
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \ #if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
&& __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern int __REDIRECT (fscanf, (FILE *__restrict __stream, extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
const char *__restrict __format, ...), const char *__restrict __format, ...),
@ -505,7 +505,7 @@ extern int vsscanf (const char *__restrict __s,
/* Same redirection as above for the v*scanf family. */ /* Same redirection as above for the v*scanf family. */
# if !__GLIBC_USE (DEPRECATED_SCANF) # if !__GLIBC_USE (DEPRECATED_SCANF)
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
# if defined __REDIRECT && !defined __LDBL_COMPAT \ # if defined __REDIRECT && !defined __LDBL_COMPAT \
&& __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
extern int __REDIRECT (vfscanf, extern int __REDIRECT (vfscanf,

View File

@ -1904,7 +1904,7 @@ operation. These functions, defined by TS 18661-1:2014 and TS
floating-point number); if @var{x} is not a NaN, they return floating-point number); if @var{x} is not a NaN, they return
@minus{}1. They raise no floating-point exceptions even for signaling @minus{}1. They raise no floating-point exceptions even for signaling
NaNs. (The return value of @minus{}1 for an argument that is not a NaNs. (The return value of @minus{}1 for an argument that is not a
NaN is specified in C2x; the value was unspecified in TS 18661.) NaN is specified in C23; the value was unspecified in TS 18661.)
@end deftypefun @end deftypefun
@deftypefun int setpayload (double *@var{x}, double @var{payload}) @deftypefun int setpayload (double *@var{x}, double @var{payload})
@ -2128,7 +2128,7 @@ are NaN, or either is a signaling NaN, NaN is returned.
@deftypefunx {long double} fminimuml (long double @var{x}, long double @var{y}) @deftypefunx {long double} fminimuml (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fminimumfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fminimumfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fminimumfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fminimumfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{fminimum} function returns the lesser of the two values @var{x} The @code{fminimum} function returns the lesser of the two values @var{x}
and @var{y}. Unlike @code{fmin}, if either argument is a NaN, NaN is returned. and @var{y}. Unlike @code{fmin}, if either argument is a NaN, NaN is returned.
@ -2140,7 +2140,7 @@ Positive zero is treated as greater than negative zero.
@deftypefunx {long double} fmaximuml (long double @var{x}, long double @var{y}) @deftypefunx {long double} fmaximuml (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fmaximumfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fmaximumfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fmaximumfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fmaximumfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{fmaximum} function returns the greater of the two values @var{x} The @code{fmaximum} function returns the greater of the two values @var{x}
and @var{y}. Unlike @code{fmax}, if either argument is a NaN, NaN is returned. and @var{y}. Unlike @code{fmax}, if either argument is a NaN, NaN is returned.
@ -2152,7 +2152,7 @@ Positive zero is treated as greater than negative zero.
@deftypefunx {long double} fminimum_numl (long double @var{x}, long double @var{y}) @deftypefunx {long double} fminimum_numl (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fminimum_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fminimum_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fminimum_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fminimum_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{fminimum_num} function returns the lesser of the two values The @code{fminimum_num} function returns the lesser of the two values
@var{x} and @var{y}. If one argument is a number and the other is a @var{x} and @var{y}. If one argument is a number and the other is a
@ -2165,7 +2165,7 @@ treated as greater than negative zero.
@deftypefunx {long double} fmaximum_numl (long double @var{x}, long double @var{y}) @deftypefunx {long double} fmaximum_numl (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fmaximum_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fmaximum_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fmaximum_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fmaximum_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{fmaximum_num} function returns the greater of the two values The @code{fmaximum_num} function returns the greater of the two values
@var{x} and @var{y}. If one argument is a number and the other is a @var{x} and @var{y}. If one argument is a number and the other is a
@ -2208,7 +2208,7 @@ as the @code{fmax} functions.
@deftypefunx {long double} fminimum_magl (long double @var{x}, long double @var{y}) @deftypefunx {long double} fminimum_magl (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fminimum_magfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fminimum_magfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fminimum_magfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fminimum_magfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions return whichever of the two values @var{x} and @var{y} These functions return whichever of the two values @var{x} and @var{y}
has the smaller absolute value. If both have the same absolute value, has the smaller absolute value. If both have the same absolute value,
@ -2221,7 +2221,7 @@ functions.
@deftypefunx {long double} fmaximum_magl (long double @var{x}, long double @var{y}) @deftypefunx {long double} fmaximum_magl (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fmaximum_magfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fmaximum_magfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fmaximum_magfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fmaximum_magfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions return whichever of the two values @var{x} and @var{y} These functions return whichever of the two values @var{x} and @var{y}
has the greater absolute value. If both have the same absolute value, has the greater absolute value. If both have the same absolute value,
@ -2234,7 +2234,7 @@ functions.
@deftypefunx {long double} fminimum_mag_numl (long double @var{x}, long double @var{y}) @deftypefunx {long double} fminimum_mag_numl (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fminimum_mag_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fminimum_mag_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fminimum_mag_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fminimum_mag_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions return whichever of the two values @var{x} and @var{y} These functions return whichever of the two values @var{x} and @var{y}
has the smaller absolute value. If both have the same absolute value, has the smaller absolute value. If both have the same absolute value,
@ -2247,7 +2247,7 @@ functions.
@deftypefunx {long double} fmaximum_mag_numl (long double @var{x}, long double @var{y}) @deftypefunx {long double} fmaximum_mag_numl (long double @var{x}, long double @var{y})
@deftypefunx _FloatN fmaximum_mag_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) @deftypefunx _FloatN fmaximum_mag_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatNx fmaximum_mag_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) @deftypefunx _FloatNx fmaximum_mag_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{C2X, math.h} @standards{C23, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions return whichever of the two values @var{x} and @var{y} These functions return whichever of the two values @var{x} and @var{y}
has the greater absolute value. If both have the same absolute value, has the greater absolute value. If both have the same absolute value,
@ -2663,12 +2663,12 @@ A nonempty sequence of digits in the radix specified by @var{base}.
If @var{base} is zero, decimal radix is assumed unless the series of If @var{base} is zero, decimal radix is assumed unless the series of
digits begins with @samp{0} (specifying octal radix), or @samp{0x} or digits begins with @samp{0} (specifying octal radix), or @samp{0x} or
@samp{0X} (specifying hexadecimal radix), or @samp{0b} or @samp{0B} @samp{0X} (specifying hexadecimal radix), or @samp{0b} or @samp{0B}
(specifying binary radix; only supported when C2X features are (specifying binary radix; only supported when C23 features are
enabled); in other words, the same syntax used for integer constants in C. enabled); in other words, the same syntax used for integer constants in C.
Otherwise @var{base} must have a value between @code{2} and @code{36}. Otherwise @var{base} must have a value between @code{2} and @code{36}.
If @var{base} is @code{16}, the digits may optionally be preceded by If @var{base} is @code{16}, the digits may optionally be preceded by
@samp{0x} or @samp{0X}. If @var{base} is @code{2}, and C2X features @samp{0x} or @samp{0X}. If @var{base} is @code{2}, and C23 features
are enabled, the digits may optionally be preceded by are enabled, the digits may optionally be preceded by
@samp{0b} or @samp{0B}. If base has no legal value the value returned @samp{0b} or @samp{0B}. If base has no legal value the value returned
is @code{0l} and the global variable @code{errno} is set to @code{EINVAL}. is @code{0l} and the global variable @code{errno} is set to @code{EINVAL}.

View File

@ -220,11 +220,11 @@ when the compiler uses an earlier language version.
If this macro is defined, ISO C11 extensions to ISO C99 are included. If this macro is defined, ISO C11 extensions to ISO C99 are included.
@end defvr @end defvr
@defvr Macro _ISOC2X_SOURCE @defvr Macro _ISOC23_SOURCE
@standards{C2X, (none)} @standards{C23, (none)}
If this macro is defined, ISO C2X extensions to ISO C11 are included. If this macro is defined, ISO C23 extensions to ISO C11 are included.
Only some features from this draft standard are supported by Only some features from this draft standard are supported by
@theglibc{}. @theglibc{}. The older name @code{_ISOC2X_SOURCE} is also supported.
@end defvr @end defvr
@defvr Macro __STDC_WANT_LIB_EXT2__ @defvr Macro __STDC_WANT_LIB_EXT2__
@ -260,7 +260,7 @@ enabled. Only some of the features from this TS are supported by
@defvr Macro __STDC_WANT_IEC_60559_EXT__ @defvr Macro __STDC_WANT_IEC_60559_EXT__
@standards{ISO, (none)} @standards{ISO, (none)}
If you define this macro, ISO C2X features defined in Annex F of that If you define this macro, ISO C23 features defined in Annex F of that
standard are enabled. This affects declarations of the standard are enabled. This affects declarations of the
@code{totalorder} functions and functions related to NaN payloads. @code{totalorder} functions and functions related to NaN payloads.
@end defvr @end defvr

View File

@ -4,7 +4,7 @@
This chapter contains information about functions and macros for This chapter contains information about functions and macros for
determining the endianness of integer types and manipulating the bits determining the endianness of integer types and manipulating the bits
of unsigned integers. These functions and macros are from ISO C2X and of unsigned integers. These functions and macros are from ISO C23 and
are declared in the header file @file{stdbit.h}. are declared in the header file @file{stdbit.h}.
The following macros describe the endianness of integer types. They The following macros describe the endianness of integer types. They
@ -45,7 +45,7 @@ In GCC 14.1 that includes support for @code{unsigned __int128} and
@deftypefunx {unsigned int} stdc_leading_zeros_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_leading_zeros_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_leading_zeros_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_leading_zeros_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_leading_zeros_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_leading_zeros_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_leading_zeros} functions count the number of leading The @code{stdc_leading_zeros} functions count the number of leading
(most significant) zero bits in @var{x}, starting from the most (most significant) zero bits in @var{x}, starting from the most
@ -58,7 +58,7 @@ the width of @var{x} in bits.
@deftypefunx {unsigned int} stdc_leading_ones_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_leading_ones_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_leading_ones_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_leading_ones_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_leading_ones_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_leading_ones_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_leading_ones} functions count the number of leading The @code{stdc_leading_ones} functions count the number of leading
(most significant) one bits in @var{x}, starting from the most (most significant) one bits in @var{x}, starting from the most
@ -70,7 +70,7 @@ significant bit of the argument type.
@deftypefunx {unsigned int} stdc_trailing_zeros_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_trailing_zeros_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_trailing_zeros_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_trailing_zeros_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_trailing_zeros_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_trailing_zeros_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_trailing_zeros} functions count the number of trailing The @code{stdc_trailing_zeros} functions count the number of trailing
(least significant) zero bits in @var{x}, starting from the least (least significant) zero bits in @var{x}, starting from the least
@ -83,7 +83,7 @@ the width of @var{x} in bits.
@deftypefunx {unsigned int} stdc_trailing_ones_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_trailing_ones_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_trailing_ones_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_trailing_ones_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_trailing_ones_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_trailing_ones_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_trailing_ones} functions count the number of trailing The @code{stdc_trailing_ones} functions count the number of trailing
(least significant) one bits in @var{x}, starting from the least (least significant) one bits in @var{x}, starting from the least
@ -95,7 +95,7 @@ significant bit of the argument type.
@deftypefunx {unsigned int} stdc_first_leading_zero_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_first_leading_zero_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_first_leading_zero_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_first_leading_zero_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_first_leading_zero_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_first_leading_zero_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_first_leading_zero} functions return the position of The @code{stdc_first_leading_zero} functions return the position of
the most significant zero bit in @var{x}, counting from the most the most significant zero bit in @var{x}, counting from the most
@ -108,7 +108,7 @@ significant bit of @var{x} as 1, or zero if there is no zero bit in
@deftypefunx {unsigned int} stdc_first_leading_one_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_first_leading_one_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_first_leading_one_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_first_leading_one_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_first_leading_one_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_first_leading_one_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_first_leading_one} functions return the position of the The @code{stdc_first_leading_one} functions return the position of the
most significant one bit in @var{x}, counting from the most most significant one bit in @var{x}, counting from the most
@ -121,7 +121,7 @@ significant bit of @var{x} as 1, or zero if there is no one bit in
@deftypefunx {unsigned int} stdc_first_trailing_zero_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_first_trailing_zero_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_first_trailing_zero_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_first_trailing_zero_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_first_trailing_zero_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_first_trailing_zero_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_first_trailing_zero} functions return the position of The @code{stdc_first_trailing_zero} functions return the position of
the least significant zero bit in @var{x}, counting from the least the least significant zero bit in @var{x}, counting from the least
@ -134,7 +134,7 @@ significant bit of @var{x} as 1, or zero if there is no zero bit in
@deftypefunx {unsigned int} stdc_first_trailing_one_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_first_trailing_one_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_first_trailing_one_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_first_trailing_one_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_first_trailing_one_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_first_trailing_one_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_first_trailing_one} functions return the position of The @code{stdc_first_trailing_one} functions return the position of
the least significant one bit in @var{x}, counting from the least the least significant one bit in @var{x}, counting from the least
@ -147,7 +147,7 @@ significant bit of @var{x} as 1, or zero if there is no one bit in
@deftypefunx {unsigned int} stdc_count_zeros_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_count_zeros_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_count_zeros_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_count_zeros_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_count_zeros_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_count_zeros_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_count_zeros} functions count the number of zero bits in The @code{stdc_count_zeros} functions count the number of zero bits in
@var{x}. @var{x}.
@ -158,7 +158,7 @@ The @code{stdc_count_zeros} functions count the number of zero bits in
@deftypefunx {unsigned int} stdc_count_ones_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_count_ones_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_count_ones_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_count_ones_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_count_ones_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_count_ones_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_count_ones} functions count the number of one bits in The @code{stdc_count_ones} functions count the number of one bits in
@var{x}. @var{x}.
@ -169,7 +169,7 @@ The @code{stdc_count_ones} functions count the number of one bits in
@deftypefunx {_Bool} stdc_has_single_bit_ui (unsigned int @var{x}) @deftypefunx {_Bool} stdc_has_single_bit_ui (unsigned int @var{x})
@deftypefunx {_Bool} stdc_has_single_bit_ul (unsigned long int @var{x}) @deftypefunx {_Bool} stdc_has_single_bit_ul (unsigned long int @var{x})
@deftypefunx {_Bool} stdc_has_single_bit_ull (unsigned long long int @var{x}) @deftypefunx {_Bool} stdc_has_single_bit_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_has_single_bit} functions return whether @var{x} has The @code{stdc_has_single_bit} functions return whether @var{x} has
exactly one bit set to one. exactly one bit set to one.
@ -180,7 +180,7 @@ exactly one bit set to one.
@deftypefunx {unsigned int} stdc_bit_width_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_bit_width_ui (unsigned int @var{x})
@deftypefunx {unsigned int} stdc_bit_width_ul (unsigned long int @var{x}) @deftypefunx {unsigned int} stdc_bit_width_ul (unsigned long int @var{x})
@deftypefunx {unsigned int} stdc_bit_width_ull (unsigned long long int @var{x}) @deftypefunx {unsigned int} stdc_bit_width_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_bit_width} functions return the minimum number of bits The @code{stdc_bit_width} functions return the minimum number of bits
needed to store @var{x}, not counting leading zero bits. If @var{x} needed to store @var{x}, not counting leading zero bits. If @var{x}
@ -192,7 +192,7 @@ is zero, they return zero.
@deftypefunx {unsigned int} stdc_bit_floor_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_bit_floor_ui (unsigned int @var{x})
@deftypefunx {unsigned long int} stdc_bit_floor_ul (unsigned long int @var{x}) @deftypefunx {unsigned long int} stdc_bit_floor_ul (unsigned long int @var{x})
@deftypefunx {unsigned long long int} stdc_bit_floor_ull (unsigned long long int @var{x}) @deftypefunx {unsigned long long int} stdc_bit_floor_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_bit_floor} functions return the largest integer power The @code{stdc_bit_floor} functions return the largest integer power
of two that is less than or equal to @var{x}. If @var{x} is zero, of two that is less than or equal to @var{x}. If @var{x} is zero,
@ -204,7 +204,7 @@ they return zero.
@deftypefunx {unsigned int} stdc_bit_ceil_ui (unsigned int @var{x}) @deftypefunx {unsigned int} stdc_bit_ceil_ui (unsigned int @var{x})
@deftypefunx {unsigned long int} stdc_bit_ceil_ul (unsigned long int @var{x}) @deftypefunx {unsigned long int} stdc_bit_ceil_ul (unsigned long int @var{x})
@deftypefunx {unsigned long long int} stdc_bit_ceil_ull (unsigned long long int @var{x}) @deftypefunx {unsigned long long int} stdc_bit_ceil_ull (unsigned long long int @var{x})
@standards{C2X, stdbit.h} @standards{C23, stdbit.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
The @code{stdc_bit_ceil} functions return the smallest integer power The @code{stdc_bit_ceil} functions return the smallest integer power
of two that is greater than or equal to @var{x}. If this cannot be of two that is greater than or equal to @var{x}. If this cannot be

View File

@ -1828,8 +1828,8 @@ output, but are different when used with @code{scanf} for input
@item @samp{%b}, @samp{%B} @item @samp{%b}, @samp{%B}
Print an integer as an unsigned binary number. @samp{%b} uses Print an integer as an unsigned binary number. @samp{%b} uses
lower-case @samp{b} with the @samp{#} flag and @samp{%B} uses lower-case @samp{b} with the @samp{#} flag and @samp{%B} uses
upper-case. @samp{%b} is an ISO C2X feature; @samp{%B} is an upper-case. @samp{%b} is an ISO C23 feature; @samp{%B} is an
optional ISO C2X feature. @xref{Integer Conversions}, for optional ISO C23 feature. @xref{Integer Conversions}, for
details. details.
@item @samp{%o} @item @samp{%o}
@ -2036,7 +2036,7 @@ taking signed integers, or @code{uint@var{n}_t} or
taking unsigned integers. If the type is narrower than @code{int}, taking unsigned integers. If the type is narrower than @code{int},
the promoted argument is converted back to the specified type. the promoted argument is converted back to the specified type.
This modifier was introduced in @w{ISO C2X}. This modifier was introduced in @w{ISO C23}.
@item wf@var{n} @item wf@var{n}
Specifies that the argument is a @code{int_fast@var{n}_t} or Specifies that the argument is a @code{int_fast@var{n}_t} or
@ -2044,7 +2044,7 @@ Specifies that the argument is a @code{int_fast@var{n}_t} or
than @code{int}, the promoted argument is converted back to the than @code{int}, the promoted argument is converted back to the
specified type. specified type.
This modifier was introduced in @w{ISO C2X}. This modifier was introduced in @w{ISO C23}.
@item z @item z
@itemx Z @itemx Z
@ -2144,7 +2144,7 @@ specifier is @samp{%a}, @samp{%e}, @samp{%f}, or @samp{%g} and it is
@w{[@code{-}]@code{INF}} or @code{NAN} respectively if the conversion is @w{[@code{-}]@code{INF}} or @code{NAN} respectively if the conversion is
@samp{%A}, @samp{%E}, @samp{%F} or @samp{%G}. On some implementations, a NaN @samp{%A}, @samp{%E}, @samp{%F} or @samp{%G}. On some implementations, a NaN
may result in longer output with information about the payload of the may result in longer output with information about the payload of the
NaN; ISO C2X defines a macro @code{_PRINTF_NAN_LEN_MAX} giving the NaN; ISO C23 defines a macro @code{_PRINTF_NAN_LEN_MAX} giving the
maximum length of such output. maximum length of such output.
The following flags can be used to modify the behavior: The following flags can be used to modify the behavior:
@ -3547,7 +3547,7 @@ Input Conversions}.
@item @samp{%b} @item @samp{%b}
Matches an unsigned integer written in binary radix. This is an ISO Matches an unsigned integer written in binary radix. This is an ISO
C2X feature. @xref{Numeric Input Conversions}. C23 feature. @xref{Numeric Input Conversions}.
@item @samp{%o} @item @samp{%o}
Matches an unsigned integer written in octal radix. Matches an unsigned integer written in octal radix.
@ -3720,13 +3720,13 @@ Specifies that the argument is an @code{int@var{n}_t *} or
@code{uint@var{n}_t *} or @code{uint_least@var{n}_t *} (which are the @code{uint@var{n}_t *} or @code{uint_least@var{n}_t *} (which are the
same type). same type).
This modifier was introduced in @w{ISO C2X}. This modifier was introduced in @w{ISO C23}.
@item wf@var{n} @item wf@var{n}
Specifies that the argument is an @code{int_fast@var{n}_t *} or Specifies that the argument is an @code{int_fast@var{n}_t *} or
@code{uint_fast@var{n}_t *}. @code{uint_fast@var{n}_t *}.
This modifier was introduced in @w{ISO C2X}. This modifier was introduced in @w{ISO C23}.
@item z @item z
Specifies that the argument is a @code{size_t *}. Specifies that the argument is a @code{size_t *}.

View File

@ -1493,7 +1493,7 @@ With @code{%B}, @code{%b}, and @code{%h}: use the grammatical form for
month names that is appropriate when the month is named by itself, month names that is appropriate when the month is named by itself,
rather than the form that is appropriate when the month is used as rather than the form that is appropriate when the month is used as
part of a complete date. The @code{%OB} and @code{%Ob} formats are a part of a complete date. The @code{%OB} and @code{%Ob} formats are a
C2X feature, specified in C2X to use the locale's `alternative' month C23 feature, specified in C23 to use the locale's `alternative' month
name; @theglibc{} extends this specification to say that the form used name; @theglibc{} extends this specification to say that the form used
in a complete date is the default and the form naming the month by in a complete date is the default and the form naming the month by
itself is the alternative. itself is the alternative.
@ -1516,14 +1516,14 @@ The full weekday name according to the current locale.
@item %b @item %b
The abbreviated month name according to the current locale, in the The abbreviated month name according to the current locale, in the
grammatical form used when the month is part of a complete date. grammatical form used when the month is part of a complete date.
As a C2X feature (with a more detailed specification in @theglibc{}), As a C23 feature (with a more detailed specification in @theglibc{}),
the @code{O} modifier can be used (@code{%Ob}) to get the grammatical the @code{O} modifier can be used (@code{%Ob}) to get the grammatical
form used when the month is named by itself. form used when the month is named by itself.
@item %B @item %B
The full month name according to the current locale, in the The full month name according to the current locale, in the
grammatical form used when the month is part of a complete date. grammatical form used when the month is part of a complete date.
As a C2X feature (with a more detailed specification in @theglibc{}), As a C23 feature (with a more detailed specification in @theglibc{}),
the @code{O} modifier can be used (@code{%OB}) to get the grammatical the @code{O} modifier can be used (@code{%OB}) to get the grammatical
form used when the month is named by itself. form used when the month is named by itself.

View File

@ -109,7 +109,7 @@ __MATHCALL_VEC (log10,, (_Mdouble_ __x));
/* Break VALUE into integral and fractional parts. */ /* Break VALUE into integral and fractional parts. */
__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2));
#if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X) #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23)
/* Compute exponent to base ten. */ /* Compute exponent to base ten. */
__MATHCALL_VEC (exp10,, (_Mdouble_ __x)); __MATHCALL_VEC (exp10,, (_Mdouble_ __x));
#endif #endif
@ -264,7 +264,7 @@ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y));
__MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y));
# endif # endif
# if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN
/* Return X - epsilon. */ /* Return X - epsilon. */
__MATHCALL (nextdown,, (_Mdouble_ __x)); __MATHCALL (nextdown,, (_Mdouble_ __x));
/* Return X + epsilon. */ /* Return X + epsilon. */
@ -283,7 +283,7 @@ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
__MATHDECL (int,ilogb,, (_Mdouble_ __x)); __MATHDECL (int,ilogb,, (_Mdouble_ __x));
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN
/* Like ilogb, but returning long int. */ /* Like ilogb, but returning long int. */
__MATHDECL (long int, llogb,, (_Mdouble_ __x)); __MATHDECL (long int, llogb,, (_Mdouble_ __x));
#endif #endif
@ -328,7 +328,7 @@ __MATHDECL (long long int,llround,, (_Mdouble_ __x));
/* Return positive difference between X and Y. */ /* Return positive difference between X and Y. */
__MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y));
# if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC2X) # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23)
/* Return maximum numeric value from X and Y. */ /* Return maximum numeric value from X and Y. */
__MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
@ -340,7 +340,7 @@ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
__MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
#endif /* Use ISO C99. */ #endif /* Use ISO C99. */
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN
/* Round X to nearest integer value, rounding halfway cases to even. */ /* Round X to nearest integer value, rounding halfway cases to even. */
__MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__));
@ -372,7 +372,7 @@ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x));
#if (__GLIBC_USE (IEC_60559_BFP_EXT) \ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \
|| (__MATH_DECLARING_FLOATN \ || (__MATH_DECLARING_FLOATN \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X)))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23))))
/* Return value with maximum magnitude. */ /* Return value with maximum magnitude. */
__MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
@ -380,7 +380,7 @@ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
__MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
#endif #endif
#if __GLIBC_USE (ISOC2X) #if __GLIBC_USE (ISOC23)
/* Return maximum value from X and Y. */ /* Return maximum value from X and Y. */
__MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));

View File

@ -77,7 +77,7 @@ extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __THROW;
/* Raise the supported exceptions represented by EXCEPTS. */ /* Raise the supported exceptions represented by EXCEPTS. */
extern int feraiseexcept (int __excepts) __THROW; extern int feraiseexcept (int __excepts) __THROW;
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Set the supported exception flags represented by EXCEPTS, without /* Set the supported exception flags represented by EXCEPTS, without
causing enabled traps to be taken. */ causing enabled traps to be taken. */
extern int fesetexcept (int __excepts) __THROW; extern int fesetexcept (int __excepts) __THROW;
@ -91,7 +91,7 @@ extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
currently set. */ currently set. */
extern int fetestexcept (int __excepts) __THROW; extern int fetestexcept (int __excepts) __THROW;
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Determine which of subset of the exceptions specified by EXCEPTS /* Determine which of subset of the exceptions specified by EXCEPTS
are set in *FLAGP. */ are set in *FLAGP. */
extern int fetestexceptflag (const fexcept_t *__flagp, int __excepts) __THROW; extern int fetestexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
@ -130,7 +130,7 @@ extern int feupdateenv (const fenv_t *__envp) __THROW;
/* Control modes. */ /* Control modes. */
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Store the current floating-point control modes in the object /* Store the current floating-point control modes in the object
pointed to by MODEP. */ pointed to by MODEP. */
extern int fegetmode (femode_t *__modep) __THROW; extern int fegetmode (femode_t *__modep) __THROW;
@ -143,7 +143,7 @@ extern int fesetmode (const femode_t *__modep) __THROW;
/* NaN support. */ /* NaN support. */
#if (__GLIBC_USE (IEC_60559_BFP_EXT_C2X) \ #if (__GLIBC_USE (IEC_60559_BFP_EXT_C23) \
&& defined FE_INVALID \ && defined FE_INVALID \
&& defined __SUPPORT_SNAN__) && defined __SUPPORT_SNAN__)
# define FE_SNANS_ALWAYS_SIGNAL 1 # define FE_SNANS_ALWAYS_SIGNAL 1

View File

@ -25,7 +25,7 @@
# complex integer types, which are a GNU extension, but are currently # complex integer types, which are a GNU extension, but are currently
# disabled here because they do not work properly with tgmath.h). # disabled here because they do not work properly with tgmath.h).
# C2x makes the <tgmath.h> rules for selecting a function to call # C23 makes the <tgmath.h> rules for selecting a function to call
# correspond to the usual arithmetic conversions (applied successively # correspond to the usual arithmetic conversions (applied successively
# to the arguments for generic parameters in order), which choose the # to the arguments for generic parameters in order), which choose the
# type whose set of values contains that of the other type (undefined # type whose set of values contains that of the other type (undefined
@ -743,7 +743,7 @@ class Tests(object):
self.add_tests(prefix + fn, ret, ['r'] * args) self.add_tests(prefix + fn, ret, ['r'] * args)
# TS 18661-4 functions. # TS 18661-4 functions.
self.add_tests('exp10', 'r', ['r']) self.add_tests('exp10', 'r', ['r'])
# C2X functions. # C23 functions.
self.add_tests('fmaximum', 'r', ['r', 'r']) self.add_tests('fmaximum', 'r', ['r', 'r'])
self.add_tests('fmaximum_mag', 'r', ['r', 'r']) self.add_tests('fmaximum_mag', 'r', ['r', 'r'])
self.add_tests('fmaximum_num', 'r', ['r', 'r']) self.add_tests('fmaximum_num', 'r', ['r', 'r'])

View File

@ -249,7 +249,7 @@ static const struct test_ff_f_data pow_test_data[] =
TEST_ff_f (pow, 0, plus_infty, 0, ERRNO_UNCHANGED), TEST_ff_f (pow, 0, plus_infty, 0, ERRNO_UNCHANGED),
TEST_ff_f (pow, minus_zero, plus_infty, 0, ERRNO_UNCHANGED), TEST_ff_f (pow, minus_zero, plus_infty, 0, ERRNO_UNCHANGED),
/* C99 erroneously specified a divide-by-zero exception here, /* C99 erroneously specified a divide-by-zero exception here,
which is not permitted in C2x (C11 specified it as optional). which is not permitted in C23 (C11 specified it as optional).
See <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1515.pdf> See <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1515.pdf>
and and
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2271.pdf>. */ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2271.pdf>. */

View File

@ -114,37 +114,37 @@ __BEGIN_DECLS
#endif #endif
#if (__HAVE_FLOAT16 \ #if (__HAVE_FLOAT16 \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF16 (__builtin_nansf16 ("")) # define SNANF16 (__builtin_nansf16 (""))
#endif #endif
#if (__HAVE_FLOAT32 \ #if (__HAVE_FLOAT32 \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF32 (__builtin_nansf32 ("")) # define SNANF32 (__builtin_nansf32 (""))
#endif #endif
#if (__HAVE_FLOAT64 \ #if (__HAVE_FLOAT64 \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF64 (__builtin_nansf64 ("")) # define SNANF64 (__builtin_nansf64 (""))
#endif #endif
#if (__HAVE_FLOAT128 \ #if (__HAVE_FLOAT128 \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF128 (__builtin_nansf128 ("")) # define SNANF128 (__builtin_nansf128 (""))
#endif #endif
#if (__HAVE_FLOAT32X \ #if (__HAVE_FLOAT32X \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF32X (__builtin_nansf32x ("")) # define SNANF32X (__builtin_nansf32x (""))
#endif #endif
#if (__HAVE_FLOAT64X \ #if (__HAVE_FLOAT64X \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF64X (__builtin_nansf64x ("")) # define SNANF64X (__builtin_nansf64x (""))
#endif #endif
#if (__HAVE_FLOAT128X \ #if (__HAVE_FLOAT128X \
&& __GLIBC_USE (IEC_60559_TYPES_EXT) \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \
&& (defined __USE_GNU || !__GLIBC_USE (ISOC2X))) && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))
# define SNANF128X (__builtin_nansf128x ("")) # define SNANF128X (__builtin_nansf128x (""))
#endif #endif
@ -214,7 +214,7 @@ typedef _Float128x double_t;
# define FP_ILOGBNAN 2147483647 # define FP_ILOGBNAN 2147483647
# endif # endif
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define __FP_LONG_MAX 0x7fffffffL # define __FP_LONG_MAX 0x7fffffffL
# else # else
@ -246,7 +246,7 @@ typedef _Float128x double_t;
#include <bits/fp-fast.h> #include <bits/fp-fast.h>
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Rounding direction macros for fromfp functions. */ /* Rounding direction macros for fromfp functions. */
enum enum
{ {
@ -558,7 +558,7 @@ extern double __REDIRECT_NTH (nexttoward, (double __x, long double __y),
#define __MATHCALL_NARROW(func, redir, nargs) \ #define __MATHCALL_NARROW(func, redir, nargs) \
__MATHCALL_NARROW_NORMAL (func, nargs) __MATHCALL_NARROW_NORMAL (func, nargs)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
# define _Mret_ float # define _Mret_ float
# define _Marg_ double # define _Marg_ double
@ -1051,7 +1051,7 @@ enum
#endif /* Use ISO C99. */ #endif /* Use ISO C99. */
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
# include <bits/iscanonical.h> # include <bits/iscanonical.h>
/* Return nonzero value if X is a signaling NaN. */ /* Return nonzero value if X is a signaling NaN. */
@ -1332,7 +1332,7 @@ iszero (__T __val)
# endif # endif
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* An expression whose type has the widest of the evaluation formats /* An expression whose type has the widest of the evaluation formats
of X and Y (which are of floating-point types). */ of X and Y (which are of floating-point types). */
# if __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ > 64 # if __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ > 64

View File

@ -42,12 +42,12 @@
versions before GCC 13 have __builtin_tgmath semantics that, when versions before GCC 13 have __builtin_tgmath semantics that, when
integer arguments are passed to narrowing macros returning integer arguments are passed to narrowing macros returning
_Float32x, or non-narrowing macros with at least two generic _Float32x, or non-narrowing macros with at least two generic
arguments, do not always correspond to the C2X semantics, so more arguments, do not always correspond to the C23 semantics, so more
complicated macro definitions are also used in some cases for complicated macro definitions are also used in some cases for
versions from GCC 8 to GCC 12. */ versions from GCC 8 to GCC 12. */
#define __HAVE_BUILTIN_TGMATH __GNUC_PREREQ (8, 0) #define __HAVE_BUILTIN_TGMATH __GNUC_PREREQ (8, 0)
#define __HAVE_BUILTIN_TGMATH_C2X __GNUC_PREREQ (13, 0) #define __HAVE_BUILTIN_TGMATH_C23 __GNUC_PREREQ (13, 0)
#if __GNUC_PREREQ (2, 7) #if __GNUC_PREREQ (2, 7)
@ -171,7 +171,7 @@
__builtin_tgmath (__TGMATH_NARROW_FUNCS_F64 (F) (X), (Y)) __builtin_tgmath (__TGMATH_NARROW_FUNCS_F64 (F) (X), (Y))
# define __TGMATH_3_NARROW_F64(F, X, Y, Z) \ # define __TGMATH_3_NARROW_F64(F, X, Y, Z) \
__builtin_tgmath (__TGMATH_NARROW_FUNCS_F64 (F) (X), (Y), (Z)) __builtin_tgmath (__TGMATH_NARROW_FUNCS_F64 (F) (X), (Y), (Z))
# if __HAVE_FLOAT128 && __HAVE_BUILTIN_TGMATH_C2X # if __HAVE_FLOAT128 && __HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_1_NARROW_F32X(F, X) \ # define __TGMATH_1_NARROW_F32X(F, X) \
__builtin_tgmath (__TGMATH_NARROW_FUNCS_F32X (F) (X)) __builtin_tgmath (__TGMATH_NARROW_FUNCS_F32X (F) (X))
# define __TGMATH_2_NARROW_F32X(F, X, Y) \ # define __TGMATH_2_NARROW_F32X(F, X, Y) \
@ -182,7 +182,7 @@
# endif # endif
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
# ifdef __NO_LONG_DOUBLE_MATH # ifdef __NO_LONG_DOUBLE_MATH
# define __tgml(fct) fct # define __tgml(fct) fct
# else # else
@ -261,20 +261,20 @@
__complex_integer_type (__typeof__ (+(expr)))) __complex_integer_type (__typeof__ (+(expr))))
/* The tgmath real type of EXPR1 combined with EXPR2, without handling /* The tgmath real type of EXPR1 combined with EXPR2, without handling
the C2X rule of interpreting integer arguments as _Float32x if any the C23 rule of interpreting integer arguments as _Float32x if any
argument is _FloatNx. */ argument is _FloatNx. */
# define __tgmath_real_type2_base(expr1, expr2) \ # define __tgmath_real_type2_base(expr1, expr2) \
__typeof ((__tgmath_real_type (expr1)) 0 + (__tgmath_real_type (expr2)) 0) __typeof ((__tgmath_real_type (expr1)) 0 + (__tgmath_real_type (expr2)) 0)
/* The tgmath complex type of EXPR1 combined with EXPR2, without /* The tgmath complex type of EXPR1 combined with EXPR2, without
handling the C2X rule of interpreting integer arguments as handling the C23 rule of interpreting integer arguments as
_Float32x if any argument is _FloatNx. */ _Float32x if any argument is _FloatNx. */
# define __tgmath_complex_type2_base(expr1, expr2) \ # define __tgmath_complex_type2_base(expr1, expr2) \
__typeof ((__tgmath_complex_type (expr1)) 0 \ __typeof ((__tgmath_complex_type (expr1)) 0 \
+ (__tgmath_complex_type (expr2)) 0) + (__tgmath_complex_type (expr2)) 0)
/* The tgmath real type of EXPR1 combined with EXPR2 and EXPR3, /* The tgmath real type of EXPR1 combined with EXPR2 and EXPR3,
without handling the C2X rule of interpreting integer arguments as without handling the C23 rule of interpreting integer arguments as
_Float32x if any argument is _FloatNx. */ _Float32x if any argument is _FloatNx. */
# define __tgmath_real_type3_base(expr1, expr2, expr3) \ # define __tgmath_real_type3_base(expr1, expr2, expr3) \
__typeof ((__tgmath_real_type (expr1)) 0 \ __typeof ((__tgmath_real_type (expr1)) 0 \
@ -361,7 +361,7 @@
# define __TGMATH_CF128(arg_comb, fct, cfct, arg_call) /* Nothing. */ # define __TGMATH_CF128(arg_comb, fct, cfct, arg_call) /* Nothing. */
# endif # endif
# endif /* !__HAVE_BUILTIN_TGMATH_C2X. */ # endif /* !__HAVE_BUILTIN_TGMATH_C23. */
/* We have two kinds of generic macros: to support functions which are /* We have two kinds of generic macros: to support functions which are
only defined on real valued parameters and those which are defined only defined on real valued parameters and those which are defined
@ -374,13 +374,13 @@
__TGMATH_2 (Fct, (Val1), (Val2)) __TGMATH_2 (Fct, (Val1), (Val2))
# define __TGMATH_BINARY_FIRST_REAL_STD_ONLY(Val1, Val2, Fct) \ # define __TGMATH_BINARY_FIRST_REAL_STD_ONLY(Val1, Val2, Fct) \
__TGMATH_2STD (Fct, (Val1), (Val2)) __TGMATH_2STD (Fct, (Val1), (Val2))
# if __HAVE_BUILTIN_TGMATH_C2X # if __HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \ # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
__TGMATH_2 (Fct, (Val1), (Val2)) __TGMATH_2 (Fct, (Val1), (Val2))
# endif # endif
# define __TGMATH_BINARY_REAL_STD_ONLY(Val1, Val2, Fct) \ # define __TGMATH_BINARY_REAL_STD_ONLY(Val1, Val2, Fct) \
__TGMATH_2STD (Fct, (Val1), (Val2)) __TGMATH_2STD (Fct, (Val1), (Val2))
# if __HAVE_BUILTIN_TGMATH_C2X # if __HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \ # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
__TGMATH_3 (Fct, (Val1), (Val2), (Val3)) __TGMATH_3 (Fct, (Val1), (Val2), (Val3))
# define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \ # define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
@ -395,7 +395,7 @@
__TGMATH_1C (Fct, Cfct, (Val)) __TGMATH_1C (Fct, Cfct, (Val))
# define __TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME(Val, Cfct) \ # define __TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME(Val, Cfct) \
__TGMATH_1 (Cfct, (Val)) __TGMATH_1 (Cfct, (Val))
# if __HAVE_BUILTIN_TGMATH_C2X # if __HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \ # define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \
__TGMATH_2C (Fct, Cfct, (Val1), (Val2)) __TGMATH_2C (Fct, Cfct, (Val1), (Val2))
# endif # endif
@ -441,7 +441,7 @@
: (__tgmath_real_type (Val1)) __tgml(Fct) (Val1, Val2))) : (__tgmath_real_type (Val1)) __tgml(Fct) (Val1, Val2)))
# endif # endif
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \ # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
(__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \ (__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \
@ -479,7 +479,7 @@
Fct##f (Val1, Val2))) Fct##f (Val1, Val2)))
# endif # endif
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \ # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
(__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \ (__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \
@ -597,7 +597,7 @@
__TGMATH_UNARY_REAL_IMAG_RET_REAL ((Val), Cfct, Cfct) __TGMATH_UNARY_REAL_IMAG_RET_REAL ((Val), Cfct, Cfct)
# endif # endif
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
/* XXX This definition has to be changed as soon as the compiler understands /* XXX This definition has to be changed as soon as the compiler understands
the imaginary keyword. */ the imaginary keyword. */
# define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \ # define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \
@ -664,7 +664,7 @@
distinguished using sizeof (or at all if the types are typedefs distinguished using sizeof (or at all if the types are typedefs
rather than different types, in which case we err on the side of rather than different types, in which case we err on the side of
using the wider type if unsure). */ using the wider type if unsure). */
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
# if __HAVE_FLOATN_NOT_TYPEDEF # if __HAVE_FLOATN_NOT_TYPEDEF
# define __TGMATH_NARROW_F32X_USE_F64X(X) \ # define __TGMATH_NARROW_F32X_USE_F64X(X) \
!__builtin_types_compatible_p (__typeof (+(X)), _Float64) !__builtin_types_compatible_p (__typeof (+(X)), _Float64)
@ -714,7 +714,7 @@
F ## f64x (X, Y, Z) \ F ## f64x (X, Y, Z) \
: F ## f128 (X, Y, Z))) : F ## f128 (X, Y, Z)))
# endif # endif
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_1_NARROW_F32X(F, X) \ # define __TGMATH_1_NARROW_F32X(F, X) \
(__extension__ (sizeof ((__tgmath_real_type (X)) 0) > sizeof (_Float64) \ (__extension__ (sizeof ((__tgmath_real_type (X)) 0) > sizeof (_Float64) \
|| __TGMATH_NARROW_F32X_USE_F64X (X) \ || __TGMATH_NARROW_F32X_USE_F64X (X) \
@ -761,7 +761,7 @@
# define __TGMATH_3_NARROW_F64(F, X, Y, Z) \ # define __TGMATH_3_NARROW_F64(F, X, Y, Z) \
(F ## f128 (X, Y, Z)) (F ## f128 (X, Y, Z))
# endif # endif
# if !__HAVE_BUILTIN_TGMATH_C2X # if !__HAVE_BUILTIN_TGMATH_C23
# define __TGMATH_1_NARROW_F32X(F, X) \ # define __TGMATH_1_NARROW_F32X(F, X) \
(__extension__ (sizeof ((__tgmath_real_type (X)) 0) > sizeof (_Float32x) \ (__extension__ (sizeof ((__tgmath_real_type (X)) 0) > sizeof (_Float32x) \
|| __TGMATH_NARROW_F32X_USE_F64X (X) \ || __TGMATH_NARROW_F32X_USE_F64X (X) \
@ -871,7 +871,7 @@
/* Compute base-2 logarithm of X. */ /* Compute base-2 logarithm of X. */
#define log2(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2) #define log2(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2)
#if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X) #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23)
/* Compute exponent to base ten. */ /* Compute exponent to base ten. */
#define exp10(Val) __TGMATH_UNARY_REAL_ONLY (Val, exp10) #define exp10(Val) __TGMATH_UNARY_REAL_ONLY (Val, exp10)
#endif #endif
@ -949,7 +949,7 @@
prevailing rounding mode. */ prevailing rounding mode. */
#define rint(Val) __TGMATH_UNARY_REAL_ONLY (Val, rint) #define rint(Val) __TGMATH_UNARY_REAL_ONLY (Val, rint)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Return X - epsilon. */ /* Return X - epsilon. */
# define nextdown(Val) __TGMATH_UNARY_REAL_ONLY (Val, nextdown) # define nextdown(Val) __TGMATH_UNARY_REAL_ONLY (Val, nextdown)
/* Return X + epsilon. */ /* Return X + epsilon. */
@ -983,7 +983,7 @@
/* Return positive difference between X and Y. */ /* Return positive difference between X and Y. */
#define fdim(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fdim) #define fdim(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fdim)
#if __GLIBC_USE (ISOC2X) && !defined __USE_GNU #if __GLIBC_USE (ISOC23) && !defined __USE_GNU
/* Return maximum numeric value from X and Y. */ /* Return maximum numeric value from X and Y. */
# define fmax(Val1, Val2) __TGMATH_BINARY_REAL_STD_ONLY (Val1, Val2, fmax) # define fmax(Val1, Val2) __TGMATH_BINARY_REAL_STD_ONLY (Val1, Val2, fmax)
@ -1002,7 +1002,7 @@
#define fma(Val1, Val2, Val3) \ #define fma(Val1, Val2, Val3) \
__TGMATH_TERNARY_REAL_ONLY (Val1, Val2, Val3, fma) __TGMATH_TERNARY_REAL_ONLY (Val1, Val2, Val3, fma)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Round X to nearest integer value, rounding halfway cases to even. */ /* Round X to nearest integer value, rounding halfway cases to even. */
# define roundeven(Val) __TGMATH_UNARY_REAL_ONLY (Val, roundeven) # define roundeven(Val) __TGMATH_UNARY_REAL_ONLY (Val, roundeven)
@ -1030,7 +1030,7 @@
# define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag) # define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag)
#endif #endif
#if __GLIBC_USE (ISOC2X) #if __GLIBC_USE (ISOC23)
/* Return maximum value from X and Y. */ /* Return maximum value from X and Y. */
# define fmaximum(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmaximum) # define fmaximum(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmaximum)
@ -1086,7 +1086,7 @@
/* Narrowing functions. */ /* Narrowing functions. */
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Add. */ /* Add. */
# define fadd(Val1, Val2) __TGMATH_2_NARROW_F (fadd, Val1, Val2) # define fadd(Val1, Val2) __TGMATH_2_NARROW_F (fadd, Val1, Val2)

View File

@ -1,4 +1,4 @@
/* Test inet_addr does not accept C2X binary constants. /* Test inet_addr does not accept C23 binary constants.
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.

View File

@ -490,8 +490,9 @@ CFLAGS-tst-bz11319-fortify2.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2
CFLAGS-tst-memstream-string.c += -fno-builtin-fprintf CFLAGS-tst-memstream-string.c += -fno-builtin-fprintf
# Some versions of GCC supported for building glibc do not support -std=c2x, so # Some versions of GCC supported for building glibc do not support -std=c23
# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
# the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
# the test as needed. # the test as needed.
CFLAGS-tst-scanf-binary-c11.c += -std=c11 -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-scanf-binary-c11.c += -std=c11 -DOBJPFX=\"$(objpfx)\"
CFLAGS-tst-scanf-binary-c2x.c += -std=c11 -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-scanf-binary-c2x.c += -std=c11 -DOBJPFX=\"$(objpfx)\"

View File

@ -1,4 +1,4 @@
/* Test scanf functions with C2X binary integers (narrow strings, /* Test scanf functions with C23 binary integers (narrow strings,
no extensions to C11). no extensions to C11).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -22,7 +22,7 @@
#define CHAR char #define CHAR char
#define FNW #define FNW
#define L_(C) C #define L_(C) C
#define TEST_C2X 0 #define TEST_C23 0
#define STD "c11" #define STD "c11"
#include <tst-scanf-binary-main.c> #include <tst-scanf-binary-main.c>

View File

@ -1,4 +1,4 @@
/* Test scanf functions with C2X binary integers (narrow strings, /* Test scanf functions with C23 binary integers (narrow strings,
no extensions). no extensions).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -18,14 +18,14 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
/* Some versions of GCC supported for building glibc do not support /* Some versions of GCC supported for building glibc do not support
-std=c2x. */ -std=c23 or -std=c2x. */
#undef _GNU_SOURCE #undef _GNU_SOURCE
#define _ISOC2X_SOURCE #define _ISOC23_SOURCE
#define CHAR char #define CHAR char
#define FNW #define FNW
#define L_(C) C #define L_(C) C
#define TEST_C2X 1 #define TEST_C23 1
#define STD "c2x" #define STD "c23"
#include <tst-scanf-binary-main.c> #include <tst-scanf-binary-main.c>

View File

@ -1,4 +1,4 @@
/* Test scanf functions with C2X binary integers (narrow strings, /* Test scanf functions with C23 binary integers (narrow strings,
GNU extensions to C11). GNU extensions to C11).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -20,7 +20,7 @@
#define CHAR char #define CHAR char
#define FNW #define FNW
#define L_(C) C #define L_(C) C
#define TEST_C2X 1 #define TEST_C23 1
#define STD "gnu11" #define STD "gnu11"
#include <tst-scanf-binary-main.c> #include <tst-scanf-binary-main.c>

View File

@ -1,4 +1,4 @@
/* Test scanf functions with C2X binary integers (narrow strings, /* Test scanf functions with C23 binary integers (narrow strings,
GNU extensions to C89). GNU extensions to C89).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -20,7 +20,7 @@
#define CHAR char #define CHAR char
#define FNW #define FNW
#define L_(C) C #define L_(C) C
#define TEST_C2X 0 #define TEST_C23 0
#define STD "gnu89" #define STD "gnu89"
#include <tst-scanf-binary-main.c> #include <tst-scanf-binary-main.c>

View File

@ -1,4 +1,4 @@
/* Test scanf functions with C2X binary integers. /* Test scanf functions with C23 binary integers.
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -78,7 +78,7 @@ one_check (const CHAR *s, int expected, char expected_c)
TEST_VERIFY_EXIT (0 <= ret); TEST_VERIFY_EXIT (0 <= ret);
xfclose (fp); xfclose (fp);
if (!TEST_C2X) if (!TEST_C23)
{ {
expected = 0; expected = 0;
expected_c = s[0] == L_('-') ? s[2] : s[1]; expected_c = s[0] == L_('-') ? s[2] : s[1];
@ -340,7 +340,7 @@ one_check_b (const CHAR *s, int expected, char expected_c)
static void static void
one_check_scnb (const CHAR *s, int expected, char expected_c) one_check_scnb (const CHAR *s, int expected, char expected_c)
{ {
#if TEST_C2X || defined _GNU_SOURCE #if TEST_C23 || defined _GNU_SOURCE
CHECK_SCNB (uint8_t, SCNb8, s, (uint8_t) expected, expected_c); CHECK_SCNB (uint8_t, SCNb8, s, (uint8_t) expected, expected_c);
CHECK_SCNB (uint16_t, SCNb16, s, (uint16_t) expected, expected_c); CHECK_SCNB (uint16_t, SCNb16, s, (uint16_t) expected, expected_c);
CHECK_SCNB (uint32_t, SCNb32, s, (uint32_t) expected, expected_c); CHECK_SCNB (uint32_t, SCNb32, s, (uint32_t) expected, expected_c);

View File

@ -522,9 +522,10 @@ CFLAGS-tst-makecontext2.c += $(stack-align-test-flags)
CFLAGS-testmb.c += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Werror CFLAGS-testmb.c += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Werror
# Some versions of GCC supported for building glibc do not support -std=c2x # Some versions of GCC supported for building glibc do not support -std=c23
# or -std=gnu2x, so the tests for those versions use -std=c11 and -std=gnu11 # or -std=gnu23 (added in GCC 14), or the older names -std=c2x or -std=gnu2x
# and then _ISOC2X_SOURCE is defined in the test as needed. # (added in GCC 9), so the tests for those versions use -std=c11 and -std=gnu11
# and then _ISOC23_SOURCE is defined in the test as needed.
CFLAGS-tst-strtol-binary-c11.c += -std=c11 CFLAGS-tst-strtol-binary-c11.c += -std=c11
CFLAGS-tst-strtol-binary-c2x.c += -std=c11 CFLAGS-tst-strtol-binary-c2x.c += -std=c11
CFLAGS-tst-strtol-binary-gnu11.c += -std=gnu11 CFLAGS-tst-strtol-binary-gnu11.c += -std=gnu11

View File

@ -36,7 +36,7 @@ __LDBL_REDIR1_DECL (strtold_l, __strtoieee128_l)
# endif # endif
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
# ifdef __LDBL_COMPAT # ifdef __LDBL_COMPAT
__LDBL_REDIR1_DECL (strfroml, strfromd) __LDBL_REDIR1_DECL (strfroml, strfromd)
# else # else

View File

@ -165,7 +165,7 @@ typedef wchar_t __gwchar_t;
# define PRIXPTR __PRIPTR_PREFIX "X" # define PRIXPTR __PRIPTR_PREFIX "X"
/* Binary notation. */ /* Binary notation. */
# if __GLIBC_USE (ISOC2X) # if __GLIBC_USE (ISOC23)
# define PRIb8 "b" # define PRIb8 "b"
# define PRIb16 "b" # define PRIb16 "b"
# define PRIb32 "b" # define PRIb32 "b"
@ -303,7 +303,7 @@ typedef wchar_t __gwchar_t;
/* Binary notation. */ /* Binary notation. */
# if __GLIBC_USE (ISOC2X) # if __GLIBC_USE (ISOC23)
# define SCNb8 "hhb" # define SCNb8 "hhb"
# define SCNb16 "hb" # define SCNb16 "hb"
# define SCNb32 "b" # define SCNb32 "b"
@ -374,7 +374,7 @@ extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
/* Versions of the above functions that handle '0b' and '0B' prefixes /* Versions of the above functions that handle '0b' and '0B' prefixes
in base 0 or 2. */ in base 0 or 2. */
#if __GLIBC_USE (C2X_STRTOL) #if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern intmax_t __REDIRECT_NTH (strtoimax, (const char *__restrict __nptr, extern intmax_t __REDIRECT_NTH (strtoimax, (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,

View File

@ -262,7 +262,7 @@ typedef __uintmax_t uintmax_t;
# define UINTMAX_C(c) c ## ULL # define UINTMAX_C(c) c ## ULL
# endif # endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
# define INT8_WIDTH 8 # define INT8_WIDTH 8
# define UINT8_WIDTH 8 # define UINT8_WIDTH 8

View File

@ -210,7 +210,7 @@ extern unsigned long long int strtoull (const char *__restrict __nptr,
/* Versions of the above functions that handle '0b' and '0B' prefixes /* Versions of the above functions that handle '0b' and '0B' prefixes
in base 0 or 2. */ in base 0 or 2. */
#if __GLIBC_USE (C2X_STRTOL) #if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern long int __REDIRECT_NTH (strtol, (const char *__restrict __nptr, extern long int __REDIRECT_NTH (strtol, (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
@ -274,7 +274,7 @@ extern unsigned long long int __isoc23_strtoull (const char *__restrict __nptr,
#endif #endif
/* Convert a floating-point number to a string. */ /* Convert a floating-point number to a string. */
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
extern int strfromd (char *__dest, size_t __size, const char *__format, extern int strfromd (char *__dest, size_t __size, const char *__format,
double __f) double __f)
__THROW __nonnull ((3)); __THROW __nonnull ((3));
@ -360,7 +360,7 @@ extern unsigned long long int strtoull_l (const char *__restrict __nptr,
/* Versions of the above functions that handle '0b' and '0B' prefixes /* Versions of the above functions that handle '0b' and '0B' prefixes
in base 0 or 2. */ in base 0 or 2. */
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern long int __REDIRECT_NTH (strtol_l, (const char *__restrict __nptr, extern long int __REDIRECT_NTH (strtol_l, (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#include <stdlib.h> #include <stdlib.h>
#include <wchar.h> #include <wchar.h>
#include <locale/localeinfo.h> #include <locale/localeinfo.h>

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
# include <config.h> # include <config.h>

View File

@ -19,8 +19,8 @@
#define QUAD 1 #define QUAD 1
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#include <locale.h> #include <locale.h>
#include <stdbool.h> #include <stdbool.h>

View File

@ -19,8 +19,8 @@
#define UNSIGNED 1 #define UNSIGNED 1
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#include <locale.h> #include <locale.h>
#include <stdbool.h> #include <stdbool.h>

View File

@ -20,8 +20,8 @@
#define UNSIGNED 1 #define UNSIGNED 1
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#include <locale.h> #include <locale.h>
#include <stdbool.h> #include <stdbool.h>

View File

@ -1,4 +1,4 @@
/* Test strtol functions with C2X binary integers (narrow strings, /* Test strtol functions with C23 binary integers (narrow strings,
no extensions to C11). no extensions to C11).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -23,7 +23,7 @@
#define WIDE 0 #define WIDE 0
#define FNPFX strto #define FNPFX strto
#define L_(C) C #define L_(C) C
#define TEST_C2X 0 #define TEST_C23 0
#define TEST_Q 0 #define TEST_Q 0
#define TEST_LOCALE 0 #define TEST_LOCALE 0

View File

@ -1,4 +1,4 @@
/* Test strtol functions with C2X binary integers (narrow strings, /* Test strtol functions with C23 binary integers (narrow strings,
no extensions). no extensions).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -18,15 +18,15 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
/* Some versions of GCC supported for building glibc do not support /* Some versions of GCC supported for building glibc do not support
-std=c2x. */ -std=c23 or -std=c2x. */
#undef _GNU_SOURCE #undef _GNU_SOURCE
#define _ISOC2X_SOURCE #define _ISOC23_SOURCE
#define CHAR char #define CHAR char
#define WIDE 0 #define WIDE 0
#define FNPFX strto #define FNPFX strto
#define L_(C) C #define L_(C) C
#define TEST_C2X 1 #define TEST_C23 1
#define TEST_Q 0 #define TEST_Q 0
#define TEST_LOCALE 0 #define TEST_LOCALE 0

View File

@ -1,5 +1,5 @@
/* Test strtol functions with C2X binary integers (narrow strings, GNU /* Test strtol functions with C23 binary integers (narrow strings, GNU
extensions, C2X strtol features disabled). extensions, C23 strtol features disabled).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -20,15 +20,15 @@
#include <features.h> #include <features.h>
/* This file tests the old versions of GNU extension functions, which /* This file tests the old versions of GNU extension functions, which
are not normally available to new binaries because GNU extensions are not normally available to new binaries because GNU extensions
normally imply C2X strtol features. */ normally imply C23 strtol features. */
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#define CHAR char #define CHAR char
#define WIDE 0 #define WIDE 0
#define FNPFX strto #define FNPFX strto
#define L_(C) C #define L_(C) C
#define TEST_C2X 0 #define TEST_C23 0
#define TEST_Q 1 #define TEST_Q 1
#define TEST_LOCALE 1 #define TEST_LOCALE 1

View File

@ -1,4 +1,4 @@
/* Test strtol functions with C2X binary integers (narrow strings, GNU /* Test strtol functions with C23 binary integers (narrow strings, GNU
extensions). extensions).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -21,7 +21,7 @@
#define WIDE 0 #define WIDE 0
#define FNPFX strto #define FNPFX strto
#define L_(C) C #define L_(C) C
#define TEST_C2X 1 #define TEST_C23 1
#define TEST_Q 1 #define TEST_Q 1
#define TEST_LOCALE 1 #define TEST_LOCALE 1

View File

@ -1,4 +1,4 @@
/* Test strtol functions with C2X binary integers. /* Test strtol functions with C23 binary integers.
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -42,7 +42,7 @@
#define CHECK_RES(ARG, RES, EP, EXPECTED, EXPECTED_EP) \ #define CHECK_RES(ARG, RES, EP, EXPECTED, EXPECTED_EP) \
do \ do \
{ \ { \
if (TEST_C2X) \ if (TEST_C23) \
{ \ { \
TEST_COMPARE ((RES), EXPECTED); \ TEST_COMPARE ((RES), EXPECTED); \
TEST_VERIFY ((EP) == EXPECTED_EP); \ TEST_VERIFY ((EP) == EXPECTED_EP); \

View File

@ -50,7 +50,7 @@ extern void *memmove (void *__dest, const void *__src, size_t __n)
/* Copy no more than N bytes of SRC to DEST, stopping when C is found. /* Copy no more than N bytes of SRC to DEST, stopping when C is found.
Return the position in DEST one byte past where C was copied, Return the position in DEST one byte past where C was copied,
or NULL if C was not found in the first N bytes of SRC. */ or NULL if C was not found in the first N bytes of SRC. */
#if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X) #if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC23)
extern void *memccpy (void *__restrict __dest, const void *__restrict __src, extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
int __c, size_t __n) int __c, size_t __n)
__THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4)); __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4));
@ -182,7 +182,7 @@ extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
#endif #endif
#if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \ #if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \
|| __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X)) || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC23))
/* Duplicate S, returning an identical malloc'd string. */ /* Duplicate S, returning an identical malloc'd string. */
extern char *strdup (const char *__s) extern char *strdup (const char *__s)
__THROW __attribute_malloc__ __nonnull ((1)); __THROW __attribute_malloc__ __nonnull ((1));
@ -191,7 +191,7 @@ extern char *strdup (const char *__s)
/* Return a malloc'd copy of at most N bytes of STRING. The /* Return a malloc'd copy of at most N bytes of STRING. The
resultant string is terminated even if no null terminator resultant string is terminated even if no null terminator
appears before STRING[N]. */ appears before STRING[N]. */
#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X) #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC23)
extern char *strndup (const char *__string, size_t __n) extern char *strndup (const char *__string, size_t __n)
__THROW __attribute_malloc__ __nonnull ((1)); __THROW __attribute_malloc__ __nonnull ((1));
#endif #endif

View File

@ -73,7 +73,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -132,7 +132,7 @@ typedef unsigned long int fenv_t;
extern unsigned long int __ieee_get_fp_control (void) __THROW; extern unsigned long int __ieee_get_fp_control (void) __THROW;
extern void __ieee_set_fp_control (unsigned long int __value) __THROW; extern void __ieee_set_fp_control (unsigned long int __value) __THROW;
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned long int femode_t; typedef unsigned long int femode_t;

View File

@ -81,7 +81,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -102,7 +102,7 @@ typedef struct
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -89,7 +89,7 @@ typedef struct
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -354,8 +354,9 @@ tests += tst-ibm128-scanf-binary-c11 \
tst-ieee128-scanf-binary-gnu11 \ tst-ieee128-scanf-binary-gnu11 \
tst-ieee128-scanf-binary-gnu89 tst-ieee128-scanf-binary-gnu89
# Some versions of GCC supported for building glibc do not support -std=c2x, so # Some versions of GCC supported for building glibc do not support -std=c23
# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
# the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
# the test as needed. # the test as needed.
CFLAGS-tst-ibm128-scanf-binary-c11.c += -mabi=ibmlongdouble -Wno-psabi \ CFLAGS-tst-ibm128-scanf-binary-c11.c += -mabi=ibmlongdouble -Wno-psabi \
-std=c11 -DOBJPFX=\"$(objpfx)\" -std=c11 -DOBJPFX=\"$(objpfx)\"
@ -390,8 +391,9 @@ tests += tst-ibm128-wscanf-binary-c11 \
tst-ieee128-wscanf-binary-gnu11 \ tst-ieee128-wscanf-binary-gnu11 \
tst-ieee128-wscanf-binary-gnu89 tst-ieee128-wscanf-binary-gnu89
# Some versions of GCC supported for building glibc do not support -std=c2x, so # Some versions of GCC supported for building glibc do not support -std=c23
# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
# the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
# the test as needed. # the test as needed.
CFLAGS-tst-ibm128-wscanf-binary-c11.c += -mabi=ibmlongdouble -Wno-psabi \ CFLAGS-tst-ibm128-wscanf-binary-c11.c += -mabi=ibmlongdouble -Wno-psabi \
-std=c11 -DOBJPFX=\"$(objpfx)\" -std=c11 -DOBJPFX=\"$(objpfx)\"

View File

@ -236,8 +236,9 @@ tests += tst-nldbl-scanf-binary-c11 \
tst-nldbl-scanf-binary-gnu11 \ tst-nldbl-scanf-binary-gnu11 \
tst-nldbl-scanf-binary-gnu89 tst-nldbl-scanf-binary-gnu89
# Some versions of GCC supported for building glibc do not support -std=c2x, so # Some versions of GCC supported for building glibc do not support -std=c23
# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
# the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
# the test as needed. # the test as needed.
CFLAGS-tst-nldbl-scanf-binary-c11.c += -mlong-double-64 -std=c11 \ CFLAGS-tst-nldbl-scanf-binary-c11.c += -mlong-double-64 -std=c11 \
-DOBJPFX=\"$(objpfx)\" -DOBJPFX=\"$(objpfx)\"
@ -256,8 +257,9 @@ tests += tst-nldbl-wscanf-binary-c11 \
tst-nldbl-wscanf-binary-gnu11 \ tst-nldbl-wscanf-binary-gnu11 \
tst-nldbl-wscanf-binary-gnu89 tst-nldbl-wscanf-binary-gnu89
# Some versions of GCC supported for building glibc do not support -std=c2x, so # Some versions of GCC supported for building glibc do not support -std=c23
# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
# the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
# the test as needed. # the test as needed.
CFLAGS-tst-nldbl-wscanf-binary-c11.c += -mlong-double-64 -std=c11 \ CFLAGS-tst-nldbl-wscanf-binary-c11.c += -mlong-double-64 -std=c11 \
-DOBJPFX=\"$(objpfx)\" -DOBJPFX=\"$(objpfx)\"

View File

@ -81,7 +81,7 @@ typedef struct
#define FE_NOMASK_ENV ((const fenv_t *) -257) #define FE_NOMASK_ENV ((const fenv_t *) -257)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -122,7 +122,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -41,7 +41,7 @@ typedef unsigned int fenv_t;
/* If the default argument is used we use this value. */ /* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1l) #define FE_DFL_ENV ((const fenv_t *) -1l)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -104,7 +104,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -43,7 +43,7 @@ typedef unsigned int fenv_t;
/* If the default argument is used we use this value. */ /* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1) #define FE_DFL_ENV ((const fenv_t *) -1)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -170,7 +170,7 @@ extern const fenv_t __fe_nonieee_env;
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef double femode_t; typedef double femode_t;

View File

@ -65,7 +65,7 @@ typedef unsigned int fenv_t;
/* If the default argument is used we use this value. */ /* If the default argument is used we use this value. */
#define FE_DFL_ENV ((__const fenv_t *) -1) #define FE_DFL_ENV ((__const fenv_t *) -1)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -90,7 +90,7 @@ typedef struct
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -75,7 +75,7 @@ fenv_t;
/* If the default argument is used we use this value. */ /* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1) #define FE_DFL_ENV ((const fenv_t *) -1)
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned int femode_t; typedef unsigned int femode_t;

View File

@ -83,7 +83,7 @@ typedef unsigned long int fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef unsigned long int femode_t; typedef unsigned long int femode_t;

View File

@ -101,7 +101,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2) # define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif #endif
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) #if __GLIBC_USE (IEC_60559_BFP_EXT_C23)
/* Type representing floating-point control modes. */ /* Type representing floating-point control modes. */
typedef struct typedef struct
{ {

View File

@ -148,7 +148,7 @@ extern struct tm *__REDIRECT_NTH (localtime, (const time_t *__timer),
#endif #endif
#if defined __USE_POSIX || __GLIBC_USE (ISOC2X) #if defined __USE_POSIX || __GLIBC_USE (ISOC23)
# ifndef __USE_TIME_BITS64 # ifndef __USE_TIME_BITS64
/* Return the `struct tm' representation of *TIMER in UTC, /* Return the `struct tm' representation of *TIMER in UTC,
using *TP to store the result. */ using *TP to store the result. */
@ -173,7 +173,7 @@ extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t *__restrict __t,
# define localtime_r __localtime_r # define localtime_r __localtime_r
# endif # endif
# endif # endif
#endif /* POSIX || C2X */ #endif /* POSIX || C23 */
/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n" /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
that is the representation of TP in this format. */ that is the representation of TP in this format. */
@ -241,7 +241,7 @@ extern long int timezone;
((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
#if defined __USE_MISC || __GLIBC_USE (ISOC2X) #if defined __USE_MISC || __GLIBC_USE (ISOC23)
# ifndef __USE_TIME_BITS64 # ifndef __USE_TIME_BITS64
/* Like `mktime', but for TP represents Universal Time, not local time. */ /* Like `mktime', but for TP represents Universal Time, not local time. */
extern time_t timegm (struct tm *__tp) __THROW; extern time_t timegm (struct tm *__tp) __THROW;
@ -394,7 +394,7 @@ extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int __base),
#endif #endif
#if __GLIBC_USE (ISOC2X) #if __GLIBC_USE (ISOC23)
# ifndef __USE_TIME_BITS64 # ifndef __USE_TIME_BITS64
/* Set TS to resolution of time base BASE. */ /* Set TS to resolution of time base BASE. */
extern int timespec_getres (struct timespec *__ts, int __base) extern int timespec_getres (struct timespec *__ts, int __base)

View File

@ -285,9 +285,10 @@ CPPFLAGS-wcstold_l.c += -I../stdlib
$(objpfx)tst-wcstod-nan-locale: $(libm) $(objpfx)tst-wcstod-nan-locale: $(libm)
$(objpfx)tst-wcstod-nan-sign: $(libm) $(objpfx)tst-wcstod-nan-sign: $(libm)
# Some versions of GCC supported for building glibc do not support -std=c2x # Some versions of GCC supported for building glibc do not support -std=c23
# or -std=gnu2x, so the tests for those versions use -std=c11 and -std=gnu11 # or -std=gnu23 (added in GCC 14), or the older names -std=c2x or -std=gnu2x
# and then _ISOC2X_SOURCE is defined in the test as needed. # (added in GCC 9), so the tests for those versions use -std=c11 and -std=gnu11
# and then _ISOC23_SOURCE is defined in the test as needed.
CFLAGS-tst-wcstol-binary-c11.c += -std=c11 CFLAGS-tst-wcstol-binary-c11.c += -std=c11
CFLAGS-tst-wcstol-binary-c2x.c += -std=c11 CFLAGS-tst-wcstol-binary-c2x.c += -std=c11
CFLAGS-tst-wcstol-binary-gnu11.c += -std=gnu11 CFLAGS-tst-wcstol-binary-gnu11.c += -std=gnu11

View File

@ -29,7 +29,7 @@ __LDBL_REDIR_DECL (vwprintf);
__LDBL_REDIR_DECL (vswprintf); __LDBL_REDIR_DECL (vswprintf);
# if !__GLIBC_USE (DEPRECATED_SCANF) # if !__GLIBC_USE (DEPRECATED_SCANF)
# if defined __LDBL_COMPAT # if defined __LDBL_COMPAT
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc23_fwscanf) __LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc23_fwscanf)
__LDBL_REDIR1_DECL (wscanf, __nldbl___isoc23_wscanf) __LDBL_REDIR1_DECL (wscanf, __nldbl___isoc23_wscanf)
__LDBL_REDIR1_DECL (swscanf, __nldbl___isoc23_swscanf) __LDBL_REDIR1_DECL (swscanf, __nldbl___isoc23_swscanf)
@ -39,7 +39,7 @@ __LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf)
__LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf) __LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf)
# endif # endif
# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (fwscanf, __isoc23_fwscanfieee128) __LDBL_REDIR1_DECL (fwscanf, __isoc23_fwscanfieee128)
__LDBL_REDIR1_DECL (wscanf, __isoc23_wscanfieee128) __LDBL_REDIR1_DECL (wscanf, __isoc23_wscanfieee128)
__LDBL_REDIR1_DECL (swscanf, __isoc23_swscanfieee128) __LDBL_REDIR1_DECL (swscanf, __isoc23_swscanfieee128)
@ -66,7 +66,7 @@ __LDBL_REDIR1_DECL (wcstold, __wcstoieee128)
# endif # endif
# if !__GLIBC_USE (DEPRECATED_SCANF) # if !__GLIBC_USE (DEPRECATED_SCANF)
# if defined __LDBL_COMPAT # if defined __LDBL_COMPAT
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc23_vfwscanf) __LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc23_vfwscanf)
__LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc23_vwscanf) __LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc23_vwscanf)
__LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc23_vswscanf) __LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc23_vswscanf)
@ -76,7 +76,7 @@ __LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf)
__LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf) __LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf)
# endif # endif
# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
__LDBL_REDIR1_DECL (vfwscanf, __isoc23_vfwscanfieee128) __LDBL_REDIR1_DECL (vfwscanf, __isoc23_vfwscanfieee128)
__LDBL_REDIR1_DECL (vwscanf, __isoc23_vwscanfieee128) __LDBL_REDIR1_DECL (vwscanf, __isoc23_vwscanfieee128)
__LDBL_REDIR1_DECL (vswscanf, __isoc23_vswscanfieee128) __LDBL_REDIR1_DECL (vswscanf, __isoc23_vswscanfieee128)

View File

@ -1,4 +1,4 @@
/* Test wcstol functions with C2X binary integers (wide strings, /* Test wcstol functions with C23 binary integers (wide strings,
no extensions to C11). no extensions to C11).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -23,7 +23,7 @@
#define WIDE 1 #define WIDE 1
#define FNPFX wcsto #define FNPFX wcsto
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 0 #define TEST_C23 0
#define TEST_Q 0 #define TEST_Q 0
#define TEST_LOCALE 0 #define TEST_LOCALE 0

View File

@ -1,4 +1,4 @@
/* Test wcstol functions with C2X binary integers (wide strings, /* Test wcstol functions with C23 binary integers (wide strings,
no extensions). no extensions).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -18,15 +18,15 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
/* Some versions of GCC supported for building glibc do not support /* Some versions of GCC supported for building glibc do not support
-std=c2x. */ -std=c23 or -std-c2x. */
#undef _GNU_SOURCE #undef _GNU_SOURCE
#define _ISOC2X_SOURCE #define _ISOC23_SOURCE
#define CHAR wchar_t #define CHAR wchar_t
#define WIDE 1 #define WIDE 1
#define FNPFX wcsto #define FNPFX wcsto
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 1 #define TEST_C23 1
#define TEST_Q 0 #define TEST_Q 0
#define TEST_LOCALE 0 #define TEST_LOCALE 0

View File

@ -1,5 +1,5 @@
/* Test wcstol functions with C2X binary integers (wide strings, GNU /* Test wcstol functions with C23 binary integers (wide strings, GNU
extensions, C2X wcstol features disabled). extensions, C23 wcstol features disabled).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -20,15 +20,15 @@
#include <features.h> #include <features.h>
/* This file tests the old versions of GNU extension functions, which /* This file tests the old versions of GNU extension functions, which
are not normally available to new binaries because GNU extensions are not normally available to new binaries because GNU extensions
normally imply C2X wcstol features. */ normally imply C23 wcstol features. */
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#define CHAR wchar_t #define CHAR wchar_t
#define WIDE 1 #define WIDE 1
#define FNPFX wcsto #define FNPFX wcsto
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 0 #define TEST_C23 0
#define TEST_Q 1 #define TEST_Q 1
#define TEST_LOCALE 1 #define TEST_LOCALE 1

View File

@ -1,4 +1,4 @@
/* Test wcstol functions with C2X binary integers (wide strings, GNU /* Test wcstol functions with C23 binary integers (wide strings, GNU
extensions). extensions).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -21,7 +21,7 @@
#define WIDE 1 #define WIDE 1
#define FNPFX wcsto #define FNPFX wcsto
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 1 #define TEST_C23 1
#define TEST_Q 1 #define TEST_Q 1
#define TEST_LOCALE 1 #define TEST_LOCALE 1

View File

@ -1,4 +1,4 @@
/* Test wscanf functions with C2X binary integers (wide strings, /* Test wscanf functions with C23 binary integers (wide strings,
no extensions to C11). no extensions to C11).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -22,7 +22,7 @@
#define CHAR wchar_t #define CHAR wchar_t
#define FNW w #define FNW w
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 0 #define TEST_C23 0
#define STD "c11" #define STD "c11"
#include "../stdio-common/tst-scanf-binary-main.c" #include "../stdio-common/tst-scanf-binary-main.c"

View File

@ -1,4 +1,4 @@
/* Test wscanf functions with C2X binary integers (wide strings, /* Test wscanf functions with C23 binary integers (wide strings,
no extensions). no extensions).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -18,14 +18,14 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
/* Some versions of GCC supported for building glibc do not support /* Some versions of GCC supported for building glibc do not support
-std=c2x. */ -std=c23 or -std=c2x. */
#undef _GNU_SOURCE #undef _GNU_SOURCE
#define _ISOC2X_SOURCE #define _ISOC23_SOURCE
#define CHAR wchar_t #define CHAR wchar_t
#define FNW w #define FNW w
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 1 #define TEST_C23 1
#define STD "c2x" #define STD "c23"
#include "../stdio-common/tst-scanf-binary-main.c" #include "../stdio-common/tst-scanf-binary-main.c"

View File

@ -1,4 +1,4 @@
/* Test wscanf functions with C2X binary integers (wide strings, /* Test wscanf functions with C23 binary integers (wide strings,
GNU extensions to C11). GNU extensions to C11).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -20,7 +20,7 @@
#define CHAR wchar_t #define CHAR wchar_t
#define FNW w #define FNW w
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 1 #define TEST_C23 1
#define STD "gnu11" #define STD "gnu11"
#include "../stdio-common/tst-scanf-binary-main.c" #include "../stdio-common/tst-scanf-binary-main.c"

View File

@ -1,4 +1,4 @@
/* Test wscanf functions with C2X binary integers (wide strings, /* Test wscanf functions with C23 binary integers (wide strings,
GNU extensions to C89). GNU extensions to C89).
Copyright (C) 2022-2024 Free Software Foundation, Inc. Copyright (C) 2022-2024 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -20,7 +20,7 @@
#define CHAR wchar_t #define CHAR wchar_t
#define FNW w #define FNW w
#define L_(C) L ## C #define L_(C) L ## C
#define TEST_C2X 0 #define TEST_C23 0
#define STD "gnu89" #define STD "gnu89"
#include "../stdio-common/tst-scanf-binary-main.c" #include "../stdio-common/tst-scanf-binary-main.c"

View File

@ -31,9 +31,9 @@
#include <bits/types.h> #include <bits/types.h>
#include <bits/types/mbstate_t.h> #include <bits/types/mbstate_t.h>
/* Declare the C2x char8_t typedef in C2x modes, but only if the C++ /* Declare the C23 char8_t typedef in C23 modes, but only if the C++
__cpp_char8_t feature test macro is not defined. */ __cpp_char8_t feature test macro is not defined. */
#if __GLIBC_USE (ISOC2X) && !defined __cpp_char8_t #if __GLIBC_USE (ISOC23) && !defined __cpp_char8_t
#if __GNUC_PREREQ (10, 0) && defined __cplusplus #if __GNUC_PREREQ (10, 0) && defined __cplusplus
/* Suppress the diagnostic regarding char8_t being a keyword in C++20. */ /* Suppress the diagnostic regarding char8_t being a keyword in C++20. */
# pragma GCC diagnostic push # pragma GCC diagnostic push
@ -55,9 +55,9 @@ typedef __uint_least32_t char32_t;
__BEGIN_DECLS __BEGIN_DECLS
/* Declare the C2x mbrtoc8() and c8rtomb() functions in C2x modes or if /* Declare the C23 mbrtoc8() and c8rtomb() functions in C23 modes or if
the C++ __cpp_char8_t feature test macro is defined. */ the C++ __cpp_char8_t feature test macro is defined. */
#if __GLIBC_USE (ISOC2X) || defined __cpp_char8_t #if __GLIBC_USE (ISOC23) || defined __cpp_char8_t
/* Write char8_t representation of multibyte character pointed /* Write char8_t representation of multibyte character pointed
to by S to PC8. */ to by S to PC8. */
extern size_t mbrtoc8 (char8_t *__restrict __pc8, extern size_t mbrtoc8 (char8_t *__restrict __pc8,

View File

@ -410,7 +410,7 @@ extern long double wcstold (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) __THROW; wchar_t **__restrict __endptr) __THROW;
#endif /* C99 */ #endif /* C99 */
#if __GLIBC_USE (IEC_60559_TYPES_EXT) && __GLIBC_USE (ISOC2X) #if __GLIBC_USE (IEC_60559_TYPES_EXT) && __GLIBC_USE (ISOC23)
/* Likewise for `_FloatN' and `_FloatNx' when support is enabled. */ /* Likewise for `_FloatN' and `_FloatNx' when support is enabled. */
# if __HAVE_FLOAT16 # if __HAVE_FLOAT16
@ -447,7 +447,7 @@ extern _Float64x wcstof64x (const wchar_t *__restrict __nptr,
extern _Float128x wcstof128x (const wchar_t *__restrict __nptr, extern _Float128x wcstof128x (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) __THROW; wchar_t **__restrict __endptr) __THROW;
# endif # endif
#endif /* __GLIBC_USE (IEC_60559_TYPES_EXT) && __GLIBC_USE (ISOC2X) */ #endif /* __GLIBC_USE (IEC_60559_TYPES_EXT) && __GLIBC_USE (ISOC23) */
/* Convert initial portion of wide string NPTR to `long int' /* Convert initial portion of wide string NPTR to `long int'
@ -495,7 +495,7 @@ extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
/* Versions of the above functions that handle '0b' and '0B' prefixes /* Versions of the above functions that handle '0b' and '0B' prefixes
in base 0 or 2. */ in base 0 or 2. */
#if __GLIBC_USE (C2X_STRTOL) #if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern long int __REDIRECT_NTH (wcstol, (const wchar_t *__restrict __nptr, extern long int __REDIRECT_NTH (wcstol, (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
@ -579,7 +579,7 @@ extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
/* Versions of the above functions that handle '0b' and '0B' prefixes /* Versions of the above functions that handle '0b' and '0B' prefixes
in base 0 or 2. */ in base 0 or 2. */
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern long int __REDIRECT_NTH (wcstol_l, (const wchar_t *__restrict __nptr, extern long int __REDIRECT_NTH (wcstol_l, (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
@ -790,7 +790,7 @@ extern int swscanf (const wchar_t *__restrict __s,
bits/wchar-ldbl.h. */ bits/wchar-ldbl.h. */
# if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \ # if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
&& __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream, extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...), const wchar_t *__restrict __format, ...),
@ -870,7 +870,7 @@ extern int vswscanf (const wchar_t *__restrict __s,
&& (!defined __LDBL_COMPAT || !defined __REDIRECT) \ && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
&& (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) \ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) \
&& __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
# if __GLIBC_USE (C2X_STRTOL) # if __GLIBC_USE (C23_STRTOL)
# ifdef __REDIRECT # ifdef __REDIRECT
extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s, extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s,
const wchar_t *__restrict __format, const wchar_t *__restrict __format,

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#define __need_wchar_t #define __need_wchar_t
#include <stddef.h> #include <stddef.h>
#include <locale.h> #include <locale.h>

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#define __need_wchar_t #define __need_wchar_t
#include <stddef.h> #include <stddef.h>
#include <locale.h> #include <locale.h>

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#define __need_wchar_t #define __need_wchar_t
#include <stddef.h> #include <stddef.h>
#include <locale.h> #include <locale.h>

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */ <https://www.gnu.org/licenses/>. */
#include <features.h> #include <features.h>
#undef __GLIBC_USE_C2X_STRTOL #undef __GLIBC_USE_C23_STRTOL
#define __GLIBC_USE_C2X_STRTOL 0 #define __GLIBC_USE_C23_STRTOL 0
#define __need_wchar_t #define __need_wchar_t
#include <stddef.h> #include <stddef.h>
#include <locale.h> #include <locale.h>