#endif /* Use extern inlines. */
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/argp-ldbl.h>
#endif
#ifndef __NO_LONG_DOUBLE_MATH
# define __NO_LONG_DOUBLE_MATH 1
#endif
-#define __LONG_DOUBLE_USES_FLOAT128 0
+
+/* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the
+ choice of the underlying ABI of long double. It will always assume
+ a constant value for each translation unit.
+
+ If the value is non-zero, any API which is parameterized by the long
+ double type (i.e the scanf/printf family of functions or the explicitly
+ parameterized math.h functions) will be redirected to a compatible
+ implementation using _Float128 ABI via symbols suffixed with ieee128.
+
+ The mechanism this macro uses to acquire may be a function
+ of architecture, or target specific options used to invoke the
+ compiler. */
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
if (i.dli_sname == NULL)
return 1;
-#if __LONG_DOUBLE_USES_FLOAT128 == 1
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
/* On architectures which redirect long double to
_Float128 (e.g powerpc64le), printf will resolve
to __printfieee128 due to header redirects. There
hidden_proto (__isnanf)
# if !defined __NO_LONG_DOUBLE_MATH \
- && __LONG_DOUBLE_USES_FLOAT128 == 0
+ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
hidden_proto (__finitel)
hidden_proto (__isinfl)
hidden_proto (__isnanl)
libm_hidden_proto (__roundeven)
# if !defined __NO_LONG_DOUBLE_MATH \
- && __LONG_DOUBLE_USES_FLOAT128 == 0
+ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
libm_hidden_proto (__fpclassifyl)
libm_hidden_proto (__issignalingl)
libm_hidden_proto (__expl)
MATH_REDIRECT_LDBL (FUNC, PREFIX, ARGS) \
MATH_REDIRECT_F128 (FUNC, PREFIX, ARGS)
# if defined __NO_LONG_DOUBLE_MATH \
- || __LONG_DOUBLE_USES_FLOAT128 == 1
+ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS)
# else
# define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS) \
/* Workaround PR90731 with GCC 9 when using ldbl redirects in C++. */
#include <bits/floatn.h>
-#if defined __cplusplus && __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __cplusplus && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GNUC_PREREQ (9, 0) && !__GNUC_PREREQ (9, 3)
# pragma GCC system_header
# endif
/* Workaround PR90731 with GCC 9 when using ldbl redirects in C++. */
#include <bits/floatn.h>
-#if defined __cplusplus && __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __cplusplus && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GNUC_PREREQ (9, 0) && !__GNUC_PREREQ (9, 3)
# pragma GCC system_header
# endif
/* Workaround PR90731 with GCC 9 when using ldbl redirects in C++. */
# include <bits/floatn.h>
-# if defined __cplusplus && __LONG_DOUBLE_USES_FLOAT128 == 1
+# if defined __cplusplus && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GNUC_PREREQ (9, 0) && !__GNUC_PREREQ (9, 3)
# pragma GCC system_header
# endif
/* Some libc_hidden_ldbl_proto's do not map to a unique symbol when
redirecting ldouble to _Float128 variants. We can therefore safely
directly alias them to their internal name. */
-# if __LONG_DOUBLE_USES_FLOAT128 == 1 && IS_IN (libc)
+# if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && IS_IN (libc)
# define stdio_hidden_ldbl_proto(p, f) \
extern __typeof (p ## f) p ## f __asm (__ASMNAME ("___ieee128_" #f));
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# define stdio_hidden_ldbl_proto(p,f) __LDBL_REDIR1_DECL (p ## f, p ## f ## ieee128)
# else
# define stdio_hidden_ldbl_proto(p,f) libc_hidden_proto (p ## f)
# define sscanf __isoc99_sscanf
# endif
-# if __LONG_DOUBLE_USES_FLOAT128 == 1 && IS_IN (libc)
+# if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && IS_IN (libc)
/* These are implemented as redirects to other public API.
Therefore, the usual redirection fails to avoid PLT. */
extern __typeof (__isoc99_sscanf) ___ieee128_isoc99_sscanf __THROW;
/* Workaround PR90731 with GCC 9 when using ldbl redirects in C++. */
#include <bits/floatn.h>
-#if defined __cplusplus && __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __cplusplus && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GNUC_PREREQ (9, 0) && !__GNUC_PREREQ (9, 3)
# pragma GCC system_header
# endif
#include <bits/floatn.h>
libc_hidden_proto (strtof)
libc_hidden_proto (strtod)
-#if __LONG_DOUBLE_USES_FLOAT128 == 0
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
libc_hidden_proto (strtold)
#endif
libc_hidden_proto (strtol)
/* If we are using redirects internally to support long double,
we need to tweak some macros to ensure the PLT bypass tricks
continue to work in libc. */
-#if __LONG_DOUBLE_USES_FLOAT128 == 1 && IS_IN (libc) && defined SHARED
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && IS_IN (libc) && defined SHARED
# undef __LDBL_REDIR_DECL
# define __LDBL_REDIR_DECL(func) \
/* Workaround PR90731 with GCC 9 when using ldbl redirects in C++. */
# include <bits/floatn.h>
-# if defined __cplusplus && __LONG_DOUBLE_USES_FLOAT128 == 1
+# if defined __cplusplus && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# if __GNUC_PREREQ (9, 0) && !__GNUC_PREREQ (9, 3)
# pragma GCC system_header
# endif
__LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf)
__LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf)
__LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
__LDBL_REDIR1_DECL (fscanf, __isoc99_fscanfieee128)
__LDBL_REDIR1_DECL (scanf, __isoc99_scanfieee128)
__LDBL_REDIR1_DECL (sscanf, __isoc99_sscanfieee128)
__LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf)
__LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf)
__LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
__LDBL_REDIR1_DECL (vfscanf, __isoc99_vfscanfieee128)
__LDBL_REDIR1_DECL (vscanf, __isoc99_vscanfieee128)
__LDBL_REDIR1_DECL (vsscanf, __isoc99_vsscanfieee128)
/* For historical reasons, the C99-compliant versions of the scanf
functions are at alternative names. When __LDBL_COMPAT or
- __LONG_DOUBLE_USES_FLOAT128 are in effect, this is handled in
+ __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in
bits/stdio-ldbl.h. */
#include <bits/floatn.h>
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
- && __LONG_DOUBLE_USES_FLOAT128 == 0
+ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
# ifdef __REDIRECT
extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
const char *__restrict __format, ...),
/* Same redirection as above for the v*scanf family. */
# if !__GLIBC_USE (DEPRECATED_SCANF)
# if defined __REDIRECT && !defined __LDBL_COMPAT \
- && __LONG_DOUBLE_USES_FLOAT128 == 0
+ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
extern int __REDIRECT (vfscanf,
(FILE *__restrict __s,
const char *__restrict __format, __gnuc_va_list __arg),
#endif
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/stdio-ldbl.h>
#endif
# undef __MATHDECL_1
# define __MATHDECL_1(type, function, args) \
extern type __REDIRECT_NTH(__MATH_PRECNAME(function), args, function)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# undef __MATHDECL_1
# undef __MATHDECL
# define __REDIR_TO(function) \
# define __MATH_PRECNAME(name) name##l
# include <bits/cmathcalls.h>
# if defined __LDBL_COMPAT \
- || __LONG_DOUBLE_USES_FLOAT128 == 1
+ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# undef __REDIR_TO
# undef __MATHDECL_1
# undef __MATHDECL
# define __MATHDECL_1(type, function,suffix, args) \
__MATHREDIR(type, function, suffix, args, __CONCAT(function,suffix))
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# ifdef __REDIRECT_NTH
# ifdef __USE_ISOC99
extern float __REDIRECT_NTH (nexttowardf, (float __x, long double __y),
# undef __MATH_DECLARING_FLOATN
# if defined __LDBL_COMPAT \
- || __LONG_DOUBLE_USES_FLOAT128 == 1
+ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# undef __REDIRTO
# undef __REDIRTO_ALT
# undef __MATHDECL_1
# undef __MATHCALL_NARROW
# define __MATHCALL_NARROW(func, redir, nargs) \
__MATHCALL_NARROW_REDIR (func, redir, nargs)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# define __MATHCALL_REDIR_NAME(name) __ ## f32 ## name ## ieee128
# undef __MATHCALL_NARROW
# define __MATHCALL_NARROW(func, redir, nargs) \
# undef _Marg_
# undef __MATHCALL_NAME
# if defined __LDBL_COMPAT \
- || __LONG_DOUBLE_USES_FLOAT128 == 1
+ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# undef __MATHCALL_REDIR_NAME
# undef __MATHCALL_NARROW
# define __MATHCALL_NARROW(func, redir, nargs) \
# undef __MATHCALL_NARROW
# define __MATHCALL_NARROW(func, redir, nargs) \
__MATHCALL_NARROW_REDIR (func, redir, nargs)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# define __MATHCALL_REDIR_NAME(name) __ ## f64 ## name ## ieee128
# undef __MATHCALL_NARROW
# define __MATHCALL_NARROW(func, redir, nargs) \
# undef _Marg_
# undef __MATHCALL_NAME
# if defined __LDBL_COMPAT \
- || __LONG_DOUBLE_USES_FLOAT128 == 1
+ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# undef __MATHCALL_REDIR_NAME
# undef __MATHCALL_NARROW
# define __MATHCALL_NARROW(func, redir, nargs) \
/* On architectures which redirect long double to _Float128 ABI, we must
choose the float128 ulps. Similarly, on such architectures, the ABI
used may be dependent on how the compiler was invoked. */
-#elif __LONG_DOUBLE_USES_FLOAT128 == 1
+#elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# define TYPE_STR "float128"
# define ULP_IDX ULP_FLT128
#else
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/err-ldbl.h>
#endif
extern int error_one_per_line;
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/error-ldbl.h>
#else
/* Do not inline error and error_at_line when long double has the same
#include <bits/wordsize.h>
#include <bits/long-double.h>
-#if __LONG_DOUBLE_USES_FLOAT128 == 1
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# ifdef __REDIRECT
/* Alias name defined automatically. */
__LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
# endif
#endif
-#if (!defined __LDBL_COMPAT && __LONG_DOUBLE_USES_FLOAT128 == 0) \
+#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \
|| !defined __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) name proto
# define __LDBL_REDIR(name, proto) name proto
#endif
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/syslog-ldbl.h>
#endif
__THROW;
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/printf-ldbl.h>
#endif
/* Alias declaration for asprintf, to avoid the format string
attribute and the associated warning. */
-#if __LONG_DOUBLE_USES_FLOAT128 == 1
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
extern int asprintf_alias (char **, const char *, ...) __asm__ ("__asprintfieee128");
#else
extern int asprintf_alias (char **, const char *, ...) __asm__ ("asprintf");
__LDBL_REDIR1_DECL (qgcvt, gcvt)
__LDBL_REDIR1_DECL (qecvt_r, ecvt_r)
__LDBL_REDIR1_DECL (qfcvt_r, fcvt_r)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
__LDBL_REDIR1_DECL (qecvt, __qecvtieee128)
__LDBL_REDIR1_DECL (qfcvt, __qfcvtieee128)
__LDBL_REDIR1_DECL (qgcvt, __qgcvtieee128)
#endif
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/monetary-ldbl.h>
#endif
#endif
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/stdlib-ldbl.h>
#endif
/* long double is distinct from double, so there is nothing to
define here. */
-#define __LONG_DOUBLE_USES_FLOAT128 0
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
-/* On platforms that reuse the _Float128 implementation for IEEE long
- double, access to the correct long double functions is selected based
- on the long double mode being used during the compilation. On
- powerpc64le, this is true when -mabi=ieeelongdouble is in use. */
-#define __LONG_DOUBLE_USES_FLOAT128 (__LDBL_MANT_DIG__ == 113)
+
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI (__LDBL_MANT_DIG__ == 113)
/* Trampoline in the ldbl-128ibm headers if building against the
old abi. Otherwise, we have nothing to add. */
-#if __LONG_DOUBLE_USES_FLOAT128 == 0
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
#include_next <math_ldbl.h>
#endif
# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
#endif
-#if defined (__NO_LONG_DOUBLE_MATH) || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# define iscanonical(x) ((void) (__typeof (x)) (x), 1)
#else
extern int __iscanonicall (long double __x)
#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
-#if __LONG_DOUBLE_USES_FLOAT128 == 1
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
/* long double is IEEE 128 bit */
union ieee854_long_double
{
#endif
-#if __LONG_DOUBLE_USES_FLOAT128 == 0 || __GNUC_PREREQ (7, 0)
+#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0)
/* IBM extended format for long double.
Each long double is made up of two IEEE doubles. The value of the
NaN is don't-care. */
union ibm_extended_long_double
{
-# if __LONG_DOUBLE_USES_FLOAT128 == 1 && __GNUC_PREREQ (7, 0)
+# if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0)
__ibm128 ld;
# else
long double ld;
#include_next <bits/iscanonical.h>
-#if !defined _ISOMAC && (__LONG_DOUBLE_USES_FLOAT128 == 0)
+#if !defined _ISOMAC && (__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0)
libm_hidden_proto (__iscanonicall)
#endif
/* long double is distinct from double, so there is nothing to
define here. */
-#define __LONG_DOUBLE_USES_FLOAT128 0
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
-#define __LONG_DOUBLE_USES_FLOAT128 0
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
#if !defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
# define __NO_LONG_DOUBLE_MATH 1
#endif
-#define __LONG_DOUBLE_USES_FLOAT128 0
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
-#define __LONG_DOUBLE_USES_FLOAT128 0
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
-#define __LONG_DOUBLE_USES_FLOAT128 0
+#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
__LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf)
__LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf)
__LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
__LDBL_REDIR1_DECL (fwscanf, __isoc99_fwscanfieee128)
__LDBL_REDIR1_DECL (wscanf, __isoc99_wscanfieee128)
__LDBL_REDIR1_DECL (swscanf, __isoc99_swscanfieee128)
__LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf)
__LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf)
__LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf)
-# elif __LONG_DOUBLE_USES_FLOAT128 == 1
+# elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
__LDBL_REDIR1_DECL (vfwscanf, __isoc99_vfwscanfieee128)
__LDBL_REDIR1_DECL (vwscanf, __isoc99_vwscanfieee128)
__LDBL_REDIR1_DECL (vswscanf, __isoc99_vswscanfieee128)
/* For historical reasons, the C99-compliant versions of the scanf
functions are at alternative names. When __LDBL_COMPAT or
- __LONG_DOUBLE_USES_FLOAT128 are in effect, this is handled in
+ __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in
bits/wchar-ldbl.h. */
#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
- && __LONG_DOUBLE_USES_FLOAT128 == 0
+ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
# ifdef __REDIRECT
extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...),
# if !__GLIBC_USE (DEPRECATED_SCANF) \
&& (!defined __LDBL_COMPAT || !defined __REDIRECT) \
&& (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) \
- && __LONG_DOUBLE_USES_FLOAT128 == 0
+ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
# ifdef __REDIRECT
extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s,
const wchar_t *__restrict __format,
#endif
#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
# include <bits/wchar-ldbl.h>
#endif