From 33d523d7f8c8ffdeecd03df452d80bfda3bc25d4 Mon Sep 17 00:00:00 2001 From: "Gabriel F. T. Gomes" Date: Mon, 20 Mar 2017 10:07:35 -0300 Subject: float128: Include math-finite.h for _Float128 All the declarations in math-finite.h are macroized by floating-point type. This patch includes it for float128 and protects the declarations of functions that need not be declared for float128. * math/math.h: Include bits/math-finite.h for float128. (__MATH_DECLARING_FLOATN): Define to control declaration of float128 functions. * math/bits/math-finite.h (pow10): Do not declare for float128. (gamma): Likewise. (scalb): Likewise. --- math/bits/math-finite.h | 13 ++++++++----- math/math.h | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) (limited to 'math') diff --git a/math/bits/math-finite.h b/math/bits/math-finite.h index 29f2f2ed43..b07ce31d04 100644 --- a/math/bits/math-finite.h +++ b/math/bits/math-finite.h @@ -83,7 +83,9 @@ __MATH_REDIRCALL (exp, , (_Mdouble_)); __MATH_REDIRCALL (exp10, , (_Mdouble_)); /* pow10. */ +# if !__MATH_DECLARING_FLOATN __MATH_REDIRCALL_2 (pow10, , (_Mdouble_), exp10); +# endif #endif #ifdef __USE_ISOC99 @@ -146,7 +148,7 @@ __NTH (__REDIRFROM (lgamma, , _MSUF_) (_Mdouble_ __d)) #endif #if ((defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)) \ - && defined __extern_always_inline) + && defined __extern_always_inline) && !__MATH_DECLARING_FLOATN /* gamma. */ __extern_always_inline _Mdouble_ __NTH (__REDIRFROM (gamma, , _MSUF_) (_Mdouble_ __d)) @@ -174,10 +176,11 @@ __MATH_REDIRCALL (pow, , (_Mdouble_, _Mdouble_)); __MATH_REDIRCALL (remainder, , (_Mdouble_, _Mdouble_)); #endif -#if (__MATH_DECLARING_DOUBLE \ - && (defined __USE_MISC \ - || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8))) \ - || (!defined __MATH_DECLARE_LDOUBLE && defined __USE_MISC) +#if ((__MATH_DECLARING_DOUBLE \ + && (defined __USE_MISC \ + || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8))) \ + || (!defined __MATH_DECLARE_LDOUBLE && defined __USE_MISC)) \ + && !__MATH_DECLARING_FLOATN /* scalb. */ __MATH_REDIRCALL (scalb, , (_Mdouble_, _Mdouble_)); #endif diff --git a/math/math.h b/math/math.h index daf58ab16a..3b0bcadb00 100644 --- a/math/math.h +++ b/math/math.h @@ -626,11 +626,13 @@ extern int matherr (struct exception *__exc); # define _Mdouble_ double # define __MATH_DECLARING_DOUBLE 1 # define __MATH_DECLARING_LDOUBLE 0 +# define __MATH_DECLARING_FLOATN 0 # define _MSUF_ # include # undef _Mdouble_ # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_LDOUBLE +# undef __MATH_DECLARING_FLOATN # undef _MSUF_ /* When __USE_ISOC99 is defined, include math-finite for float and @@ -641,11 +643,13 @@ extern int matherr (struct exception *__exc); # define _Mdouble_ float # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_LDOUBLE 0 +# define __MATH_DECLARING_FLOATN 0 # define _MSUF_ f # include # undef _Mdouble_ # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_LDOUBLE +# undef __MATH_DECLARING_FLOATN # undef _MSUF_ /* Include bits/math-finite.h for long double. */ @@ -653,15 +657,33 @@ extern int matherr (struct exception *__exc); # define _Mdouble_ long double # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_LDOUBLE 1 +# define __MATH_DECLARING_FLOATN 0 # define _MSUF_ l # include # undef _Mdouble_ # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_LDOUBLE +# undef __MATH_DECLARING_FLOATN # undef _MSUF_ # endif # endif /* __USE_ISOC99. */ + +/* Include bits/math-finite.h for float128. */ +# if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \ + && __GLIBC_USE (IEC_60559_TYPES_EXT) +# define _Mdouble_ _Float128 +# define __MATH_DECLARING_DOUBLE 0 +# define __MATH_DECLARING_LDOUBLE 0 +# define __MATH_DECLARING_FLOATN 1 +# define _MSUF_ f128 +# include +# undef _Mdouble_ +# undef __MATH_DECLARING_DOUBLE +# undef __MATH_DECLARING_LDOUBLE +# undef __MATH_DECLARING_FLOATN +# undef _MSUF_ +# endif #endif /* __FINITE_MATH_ONLY__ > 0. */ #ifdef __USE_ISOC99 -- cgit v1.2.3