diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-11-01 17:03:58 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-11-01 17:03:58 +0000 |
commit | 2f1b212e54b280a2dc05b809922ae25d8071da74 (patch) | |
tree | 89555ddbe869dd5cb1472dce55049521382556e4 | |
parent | x86: Add sysdeps/x86/sysdep.h (diff) | |
download | glibc-2f1b212e54b280a2dc05b809922ae25d8071da74.tar.gz glibc-2f1b212e54b280a2dc05b809922ae25d8071da74.tar.bz2 glibc-2f1b212e54b280a2dc05b809922ae25d8071da74.zip |
Clean up complex.h handling of float128.
This patch cleans up the way complex.h handles inclusion of
bits/cmathcalls.h for float128. The inclusion was between those for
the types float and long double; the patch moves it after that for
long double, matching how bits/mathcalls.h and bits/math-finite.h
inclusions are ordered. There is no need for the undefine and define
of _Mdouble_complex_ to be conditional, since __CFLOAT128 is always
defined by bits/floatn.h when _Float128 is supported, so the patch
removes the unnecessary conditionals.
Tested for x86_64.
* math/complex.h
[(__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !LIBC))
&& __GLIBC_USE (IEC_60559_TYPES_EXT)]: Move conditional code after
that for long double. Do not condition define and undefine of
_Mdouble_complex_ on [__CFLOAT128].
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | math/complex.h | 28 |
2 files changed, 21 insertions, 15 deletions
@@ -1,3 +1,11 @@ +2017-11-01 Joseph Myers <joseph@codesourcery.com> + + * math/complex.h + [(__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !LIBC)) + && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Move conditional code after + that for long double. Do not condition define and undefine of + _Mdouble_complex_ on [__CFLOAT128]. + 2017-11-01 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/i386/sysdep.h: Include <sysdeps/x86/sysdep.h> instead diff --git a/math/complex.h b/math/complex.h index 43b4c7dbc3..48c2d9e6fc 100644 --- a/math/complex.h +++ b/math/complex.h @@ -114,21 +114,6 @@ __BEGIN_DECLS #undef _Mdouble_ #undef __MATH_PRECNAME -#if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \ - && __GLIBC_USE (IEC_60559_TYPES_EXT) -/* GCC < 7 requires extra convincing to expose a complex float128 type. */ -# ifdef __CFLOAT128 -# undef _Mdouble_complex_ -# define _Mdouble_complex_ __CFLOAT128 -# endif -# define _Mdouble_ _Float128 -# define __MATH_PRECNAME(name) name##f128 -# include <bits/cmathcalls.h> -# undef _Mdouble_ -# undef __MATH_PRECNAME -# undef _Mdouble_complex_ -#endif - /* And the long double versions. It is non-critical to define them here unconditionally since `long double' is required in ISO C99. */ #if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \ @@ -145,6 +130,19 @@ __BEGIN_DECLS #endif #undef _Mdouble_ #undef __MATH_PRECNAME + +#if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \ + && __GLIBC_USE (IEC_60559_TYPES_EXT) +# undef _Mdouble_complex_ +# define _Mdouble_complex_ __CFLOAT128 +# define _Mdouble_ _Float128 +# define __MATH_PRECNAME(name) name##f128 +# include <bits/cmathcalls.h> +# undef _Mdouble_ +# undef __MATH_PRECNAME +# undef _Mdouble_complex_ +#endif + #undef __MATHDECL_1 #undef __MATHDECL #undef __MATHCALL |