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

This commit is contained in:
Joseph Myers 2013-05-18 12:12:38 +00:00
parent 3779b5b64a
commit 2ee094ff75
5 changed files with 13 additions and 10 deletions

View File

@ -1,5 +1,15 @@
2013-05-18 Joseph Myers <joseph@codesourcery.com> 2013-05-18 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.
* math/gen-libm-test.pl (@tests): Remove variable. * math/gen-libm-test.pl (@tests): Remove variable.
($count): Likewise. ($count): Likewise.
(new_test): Remove function. (new_test): Remove function.

3
NEWS
View File

@ -17,7 +17,8 @@ Version 2.18
15086, 15160, 15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304, 15086, 15160, 15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304,
15305, 15307, 15309, 15327, 15330, 15335, 15336, 15337, 15342, 15346, 15305, 15307, 15309, 15327, 15330, 15335, 15336, 15337, 15342, 15346,
15359, 15361, 15366, 15380, 15394, 15395, 15405, 15406, 15409, 15416, 15359, 15361, 15366, 15380, 15394, 15395, 15405, 15406, 15409, 15416,
15418, 15419, 15423, 15424, 15426, 15429, 15442, 15448, 15480, 15485. 15418, 15419, 15423, 15424, 15426, 15429, 15442, 15448, 15480, 15485,
15488.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078). #15078).

View File

@ -52,9 +52,7 @@ __BEGIN_DECLS
/* Macros to expand into expression of specified complex type. */ /* Macros to expand into expression of specified complex type. */
# define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y)) # define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y))
# define CMPLXF(x, y) __builtin_complex ((float) (x), (float) (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)) # define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
# endif
#endif #endif
/* The file <bits/cmathcalls.h> contains the prototypes for all the /* The file <bits/cmathcalls.h> contains the prototypes for all the

View File

@ -45,9 +45,7 @@ CMPLX (" #r ", " #i ") does not produce complex " #t ": %zu\n", s); \
C (CMPLXF, float); C (CMPLXF, float);
C (CMPLX, double); C (CMPLX, double);
# ifndef NO_LONG_DOUBLE
C (CMPLXL, long double); C (CMPLXL, long double);
# endif
#endif #endif
return result; return result;

View File

@ -120,14 +120,12 @@ check_double (void)
double, comparec, CMPLX); double, comparec, CMPLX);
} }
# ifndef NO_LONG_DOUBLE
static void static void
check_long_double (void) check_long_double (void)
{ {
ALL_CHECKS (0.0l, -0.0l, __builtin_nanl (""), __builtin_infl (), ALL_CHECKS (0.0l, -0.0l, __builtin_nanl (""), __builtin_infl (),
long double, comparecl, CMPLXL); long double, comparecl, CMPLXL);
} }
# endif
#endif #endif
static int static int
@ -136,9 +134,7 @@ do_test (void)
#ifdef CMPLX #ifdef CMPLX
check_float (); check_float ();
check_double (); check_double ();
# ifndef NO_LONG_DOUBLE
check_long_double (); check_long_double ();
# endif
#endif #endif
return result; return result;