aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-11-01 17:03:58 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-11-01 17:03:58 +0000
commit2f1b212e54b280a2dc05b809922ae25d8071da74 (patch)
tree89555ddbe869dd5cb1472dce55049521382556e4
parentx86: Add sysdeps/x86/sysdep.h (diff)
downloadglibc-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--ChangeLog8
-rw-r--r--math/complex.h28
2 files changed, 21 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index d38060b89f..ddbe9222e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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