mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
powerpc: Fix the compiler type used with C++ when -mabi=ieeelongdouble
When compiling C++ code with -mabi=ieeelongdouble, KCtype is unavailable and the long double type should be used instead. This is also providing macro __HAVE_FLOAT128_UNLIKE_LDBL in order to identify the kind of long double type is being used in the current compilation unit. Notice that bits/floatn.h cannot benefit from the new macro due to order of header inclusion. * bits/floatn-common.h: Define __HAVE_FLOAT128_UNLIKE_LDBL. * math/math.h: Restrict the prototype definition for the functions issignaling(_Float128) and iszero(_Float128); and template __iseqsig_type<_Float128>, from __HAVE_DISTINCT_FLOAT128 to __HAVE_FLOAT128_UNLIKE_LDBL. * sysdeps/powerpc/bits/floatn.h [__HAVE_FLOAT128 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus) && __LDBL_MANT_DIG__ == 113]: Use long double suffix for __f128() constants; define the type _Float128 as long double; and reuse long double in __CFLOAT128. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
This commit is contained in:
@@ -56,6 +56,13 @@
|
||||
#define __HAVE_DISTINCT_FLOAT64X 0
|
||||
#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X
|
||||
|
||||
/* Defined to 1 if the corresponding _FloatN type is not binary compatible
|
||||
with the corresponding ISO C type in the current compilation unit as
|
||||
opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
|
||||
in glibc. */
|
||||
#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 \
|
||||
&& __LDBL_MANT_DIG__ != 113)
|
||||
|
||||
/* Defined to 1 if any _FloatN or _FloatNx types that are not
|
||||
ABI-distinct are however distinct types at the C language level (so
|
||||
for the purposes of __builtin_types_compatible_p and _Generic). */
|
||||
|
||||
Reference in New Issue
Block a user