mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Include bits/math-finite.h for more _FloatN, _FloatNx types.
Continuing the preparation for additional _FloatN / _FloatNx type support, this patch extends the includes of <bits/math-finite.h> to cover all such types, under conditions analogous to those for _Float128. Tested for x86_64. * math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]: Include <bits/math-finite.h> with appropriate macros defined and undefined. [__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise. [__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise. [__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise. [__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise. [__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
This commit is contained in:
parent
eda162dd8a
commit
b61afe8c81
@ -1,5 +1,14 @@
|
||||
2017-10-30 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
|
||||
Include <bits/math-finite.h> with appropriate macros defined and
|
||||
undefined.
|
||||
[__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
|
||||
[__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
|
||||
[__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
|
||||
[__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
|
||||
[__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
|
||||
|
||||
* math/math.h [!_Mfloat_] (_Mfloat_): Do not define.
|
||||
[!_Mlong_double_] (_Mlong_double_): Likewise.
|
||||
[!_Mfloat16_] (_Mfloat16_): Likewise.
|
||||
|
139
math/math.h
139
math/math.h
@ -978,8 +978,74 @@ iszero (__T __val)
|
||||
|
||||
# endif /* __USE_ISOC99. */
|
||||
|
||||
/* Include bits/math-finite.h for float128. */
|
||||
# if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \
|
||||
/* Include bits/math-finite.h for _FloatN and _FloatNx. */
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float16
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
# define __MATH_DECLARING_FLOATN 1
|
||||
# define __REDIRFROM_X(function, reentrant) \
|
||||
function ## f16 ## reentrant
|
||||
# if __HAVE_DISTINCT_FLOAT16
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f16 ## reentrant ## _finite
|
||||
# else
|
||||
# error "non-disinct _Float16"
|
||||
# endif
|
||||
# include <bits/math-finite.h>
|
||||
# undef _Mdouble_
|
||||
# undef __MATH_DECLARING_DOUBLE
|
||||
# undef __MATH_DECLARING_FLOATN
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float32
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
# define __MATH_DECLARING_FLOATN 1
|
||||
# define __REDIRFROM_X(function, reentrant) \
|
||||
function ## f32 ## reentrant
|
||||
# if __HAVE_DISTINCT_FLOAT32
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f32 ## reentrant ## _finite
|
||||
# else
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f ## reentrant ## _finite
|
||||
# endif
|
||||
# include <bits/math-finite.h>
|
||||
# undef _Mdouble_
|
||||
# undef __MATH_DECLARING_DOUBLE
|
||||
# undef __MATH_DECLARING_FLOATN
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float64
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
# define __MATH_DECLARING_FLOATN 1
|
||||
# define __REDIRFROM_X(function, reentrant) \
|
||||
function ## f64 ## reentrant
|
||||
# if __HAVE_DISTINCT_FLOAT64
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f64 ## reentrant ## _finite
|
||||
# else
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## reentrant ## _finite
|
||||
# endif
|
||||
# include <bits/math-finite.h>
|
||||
# undef _Mdouble_
|
||||
# undef __MATH_DECLARING_DOUBLE
|
||||
# undef __MATH_DECLARING_FLOATN
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float128
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
@ -1000,6 +1066,75 @@ iszero (__T __val)
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float32x
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
# define __MATH_DECLARING_FLOATN 1
|
||||
# define __REDIRFROM_X(function, reentrant) \
|
||||
function ## f32x ## reentrant
|
||||
# if __HAVE_DISTINCT_FLOAT32X
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f32x ## reentrant ## _finite
|
||||
# else
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## reentrant ## _finite
|
||||
# endif
|
||||
# include <bits/math-finite.h>
|
||||
# undef _Mdouble_
|
||||
# undef __MATH_DECLARING_DOUBLE
|
||||
# undef __MATH_DECLARING_FLOATN
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float64x
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
# define __MATH_DECLARING_FLOATN 1
|
||||
# define __REDIRFROM_X(function, reentrant) \
|
||||
function ## f64x ## reentrant
|
||||
# if __HAVE_DISTINCT_FLOAT64X
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f64x ## reentrant ## _finite
|
||||
# elif __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## l ## reentrant ## _finite
|
||||
# else
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f128 ## reentrant ## _finite
|
||||
# endif
|
||||
# include <bits/math-finite.h>
|
||||
# undef _Mdouble_
|
||||
# undef __MATH_DECLARING_DOUBLE
|
||||
# undef __MATH_DECLARING_FLOATN
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
# if (__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !defined _LIBC)) \
|
||||
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||
# define _Mdouble_ _Float128x
|
||||
# define __MATH_DECLARING_DOUBLE 0
|
||||
# define __MATH_DECLARING_FLOATN 1
|
||||
# define __REDIRFROM_X(function, reentrant) \
|
||||
function ## f128x ## reentrant
|
||||
# if __HAVE_DISTINCT_FLOAT128X
|
||||
# define __REDIRTO_X(function, reentrant) \
|
||||
__ ## function ## f128x ## reentrant ## _finite
|
||||
# else
|
||||
# error "non-disinct _Float128x"
|
||||
# endif
|
||||
# include <bits/math-finite.h>
|
||||
# undef _Mdouble_
|
||||
# undef __MATH_DECLARING_DOUBLE
|
||||
# undef __MATH_DECLARING_FLOATN
|
||||
# undef __REDIRFROM_X
|
||||
# undef __REDIRTO_X
|
||||
# endif
|
||||
|
||||
#endif /* __FINITE_MATH_ONLY__ > 0. */
|
||||
|
||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
||||
|
Loading…
Reference in New Issue
Block a user