This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Don't disable CMPLXL macro for __NO_LONG_DOUBLE_MATH (bug 15488)


I noticed that complex.h wrongly disabled the definition of the CMPLXL
macro if double and long double have the same representation and
alignment (__NO_LONG_DOUBLE_MATH).  This patch fixes this bug.  Tested
x86_64 (not that that covers the case where the bug appeared).

2013-05-17  Joseph Myers  <joseph@codesourcery.com>

	[BZ #15488]
	* math/complex.h [__USE_ISOC11 && __GNUC_PREREQ (4, 7) &&
	__NO_LONG_DOUBLE_MATH] (CMPLXL): Define macro.
	* math/tst-CMPLX.c (do_test) [NO_LONG_DOUBLE]: Do not disable long
	double tests.
	* make/tst-CMPLX2.c [NO_LONG_DOUBLE] (check_long_double): Do not
	disable.
	(do_test) [NO_LONG_DOUBLE]: Do not disable call to
	check_long_double.

diff --git a/math/complex.h b/math/complex.h
index 5bdcc93..82c7962 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -52,9 +52,7 @@ __BEGIN_DECLS
 /* Macros to expand into expression of specified complex type.  */
 # define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y))
 # define CMPLXF(x, y) __builtin_complex ((float) (x), (float) (y))
-# ifndef __NO_LONG_DOUBLE_MATH
-#  define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
-# endif
+# define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
 #endif
 
 /* The file <bits/cmathcalls.h> contains the prototypes for all the
diff --git a/math/tst-CMPLX.c b/math/tst-CMPLX.c
index 5e9a501..fa0747b 100644
--- a/math/tst-CMPLX.c
+++ b/math/tst-CMPLX.c
@@ -45,9 +45,7 @@ CMPLX (" #r ", " #i ") does not produce complex " #t ": %zu\n", s);	      \
 
   C (CMPLXF, float);
   C (CMPLX, double);
-# ifndef NO_LONG_DOUBLE
   C (CMPLXL, long double);
-# endif
 #endif
 
   return result;
diff --git a/math/tst-CMPLX2.c b/math/tst-CMPLX2.c
index 4b62f88..195ea7a 100644
--- a/math/tst-CMPLX2.c
+++ b/math/tst-CMPLX2.c
@@ -120,14 +120,12 @@ check_double (void)
 	      double, comparec, CMPLX);
 }
 
-# ifndef NO_LONG_DOUBLE
 static void
 check_long_double (void)
 {
   ALL_CHECKS (0.0l, -0.0l, __builtin_nanl (""), __builtin_infl (),
 	      long double, comparecl, CMPLXL);
 }
-# endif
 #endif
 
 static int
@@ -136,9 +134,7 @@ do_test (void)
 #ifdef CMPLX
   check_float ();
   check_double ();
-# ifndef NO_LONG_DOUBLE
   check_long_double ();
-# endif
 #endif
 
   return result;

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]