diff options
author | Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com> | 2017-03-20 10:07:35 -0300 |
---|---|---|
committer | Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com> | 2017-05-15 10:09:08 -0300 |
commit | 33d523d7f8c8ffdeecd03df452d80bfda3bc25d4 (patch) | |
tree | f2659ac3e10b912e28d5d2fe8b08a1bc3bfb96b4 | |
parent | fcee5905d341fe975f7786e72c831ada1c8fa78b (diff) | |
download | glibc-33d523d7f8c8ffdeecd03df452d80bfda3bc25d4.tar.gz glibc-33d523d7f8c8ffdeecd03df452d80bfda3bc25d4.tar.xz glibc-33d523d7f8c8ffdeecd03df452d80bfda3bc25d4.zip |
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.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | math/bits/math-finite.h | 13 | ||||
-rw-r--r-- | math/math.h | 22 |
3 files changed, 39 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 22352418f4..75ccb4b16b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2017-05-14 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com> + + * 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. + 2017-05-14 Paul E. Murphy <murphyp@linux.vnet.ibm.com> Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com> 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 <bits/math-finite.h> # 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 <bits/math-finite.h> # 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 <bits/math-finite.h> # 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 <bits/math-finite.h> +# 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 |