mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Remove NO_LONG_DOUBLE conditionals in libm tests (bug 21607).
As noted in bug 21607, NO_LONG_DOUBLE conditionals in libm tests are no longer effective. For most this is harmless - they were only present because of long double functions not being declared with _LIBC defined, and _LIBC is no longer defined for building most tests. For the few where this is actually relevant to the test, testing LDBL_MANT_DIG > DBL_MANT_DIG is more appropriate as that limits the test to public APIs. This patch fixes the tests accordingly. Tested for x86_64 and arm. [BZ #21607] * math/basic-test.c [!NO_LONG_DOUBLE]: Change conditionals to [LDBL_MANT_DIG > DBL_MANT_DIG]. * math/bug-nextafter.c [!NO_LONG_DOUBLE]: Remove conditionals. * math/bug-nexttoward.c [!NO_LONG_DOUBLE]: Likewise. * math/test-math-isinff.cc [!NO_LONG_DOUBLE]: Likewise. * math/test-math-iszero.cc [!NO_LONG_DOUBLE]: Likewise. * math/test-nan-overflow.c [!NO_LONG_DOUBLE]: Likewise. * math/test-nan-payload.c [!NO_LONG_DOUBLE]: Likewise. * math/test-nearbyint-except-2.c [!NO_LONG_DOUBLE]: Likewise. * math/test-nearbyint-except.c [!NO_LONG_DOUBLE]: Likewise. * math/test-powl.c [!NO_LONG_DOUBLE]: Likewise. * math/test-signgam-finite-c99.c [!NO_LONG_DOUBLE]: Likewise. * math/test-signgam-finite.c [!NO_LONG_DOUBLE]: Likewise. * math/test-signgam-main.c [!NO_LONG_DOUBLE]: Likewise. * math/test-snan.c [!NO_LONG_DOUBLE]: Likewise. * math/test-tgmath-ret.c [!NO_LONG_DOUBLE]: Likewise. * math/test-tgmath.c: Include <float.h>. [!NO_LONG_DOUBLE]: Change conditionals to [LDBL_MANT_DIG > DBL_MANT_DIG]. * math/test-tgmath2.c: Include <float.h>. [!NO_LONG_DOUBLE]: Change conditionals to [LDBL_MANT_DIG > DBL_MANT_DIG].
This commit is contained in:
parent
2dd0aec531
commit
51737193a9
24
ChangeLog
24
ChangeLog
@ -1,5 +1,29 @@
|
|||||||
2017-06-28 Joseph Myers <joseph@codesourcery.com>
|
2017-06-28 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #21607]
|
||||||
|
* math/basic-test.c [!NO_LONG_DOUBLE]: Change conditionals to
|
||||||
|
[LDBL_MANT_DIG > DBL_MANT_DIG].
|
||||||
|
* math/bug-nextafter.c [!NO_LONG_DOUBLE]: Remove conditionals.
|
||||||
|
* math/bug-nexttoward.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-math-isinff.cc [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-math-iszero.cc [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-nan-overflow.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-nan-payload.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-nearbyint-except-2.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-nearbyint-except.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-powl.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-signgam-finite-c99.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-signgam-finite.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-signgam-main.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-snan.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-tgmath-ret.c [!NO_LONG_DOUBLE]: Likewise.
|
||||||
|
* math/test-tgmath.c: Include <float.h>.
|
||||||
|
[!NO_LONG_DOUBLE]: Change conditionals to [LDBL_MANT_DIG >
|
||||||
|
DBL_MANT_DIG].
|
||||||
|
* math/test-tgmath2.c: Include <float.h>.
|
||||||
|
[!NO_LONG_DOUBLE]: Change conditionals to [LDBL_MANT_DIG >
|
||||||
|
DBL_MANT_DIG].
|
||||||
|
|
||||||
* math/gen-tgmath-tests.py: New file.
|
* math/gen-tgmath-tests.py: New file.
|
||||||
* math/Makefile [PYTHON] (tests): Add test-tgmath3.
|
* math/Makefile [PYTHON] (tests): Add test-tgmath3.
|
||||||
[PYTHON] (generated): Add test-tgmath3.c.
|
[PYTHON] (generated): Add test-tgmath3.c.
|
||||||
|
@ -191,7 +191,7 @@ TEST_FUNC (float_test, float, f, FLT_EPSILON, HUGE_VALF)
|
|||||||
TEST_FUNC (double_test, double, , DBL_EPSILON, HUGE_VAL)
|
TEST_FUNC (double_test, double, , DBL_EPSILON, HUGE_VAL)
|
||||||
TEST_CONVERT (convert_dfsf_test, float, double, )
|
TEST_CONVERT (convert_dfsf_test, float, double, )
|
||||||
TEST_CONVERT (convert_sfdf_test, double, float, f)
|
TEST_CONVERT (convert_sfdf_test, double, float, f)
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
TEST_FUNC (ldouble_test, long double, l, LDBL_EPSILON, HUGE_VALL)
|
TEST_FUNC (ldouble_test, long double, l, LDBL_EPSILON, HUGE_VALL)
|
||||||
TEST_CONVERT (convert_tfsf_test, float, long double, l)
|
TEST_CONVERT (convert_tfsf_test, float, long double, l)
|
||||||
TEST_CONVERT (convert_sftf_test, long double, float, f)
|
TEST_CONVERT (convert_sftf_test, long double, float, f)
|
||||||
@ -207,7 +207,7 @@ do_test (void)
|
|||||||
convert_dfsf_test();
|
convert_dfsf_test();
|
||||||
convert_sfdf_test();
|
convert_sfdf_test();
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
ldouble_test ();
|
ldouble_test ();
|
||||||
convert_tfsf_test();
|
convert_tfsf_test();
|
||||||
convert_sftf_test();
|
convert_sftf_test();
|
||||||
|
@ -219,7 +219,6 @@ main (void)
|
|||||||
++result;
|
++result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
long double li = INFINITY;
|
long double li = INFINITY;
|
||||||
long double lm = LDBL_MAX;
|
long double lm = LDBL_MAX;
|
||||||
feclearexcept (FE_ALL_EXCEPT);
|
feclearexcept (FE_ALL_EXCEPT);
|
||||||
@ -319,7 +318,6 @@ main (void)
|
|||||||
puts ("nextafterl- did not underflow");
|
puts ("nextafterl- did not underflow");
|
||||||
++result;
|
++result;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,6 @@ main (void)
|
|||||||
++result;
|
++result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
long double li = INFINITY;
|
long double li = INFINITY;
|
||||||
long double lm = LDBL_MAX;
|
long double lm = LDBL_MAX;
|
||||||
feclearexcept (FE_ALL_EXCEPT);
|
feclearexcept (FE_ALL_EXCEPT);
|
||||||
@ -321,7 +320,6 @@ main (void)
|
|||||||
puts ("nexttowardl- did not underflow");
|
puts ("nexttowardl- did not underflow");
|
||||||
++result;
|
++result;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -30,16 +30,12 @@ do_test (void)
|
|||||||
header fix this test will not compile. */
|
header fix this test will not compile. */
|
||||||
if (isinff (1.0f)
|
if (isinff (1.0f)
|
||||||
|| !isinff (INFINITY)
|
|| !isinff (INFINITY)
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
|| isinfl (1.0L)
|
|| isinfl (1.0L)
|
||||||
|| !isinfl (INFINITY)
|
|| !isinfl (INFINITY)
|
||||||
#endif
|
|
||||||
|| isnanf (2.0f)
|
|| isnanf (2.0f)
|
||||||
|| !isnanf (NAN)
|
|| !isnanf (NAN)
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
|| isnanl (2.0L)
|
|| isnanl (2.0L)
|
||||||
|| !isnanl (NAN)
|
|| !isnanl (NAN)
|
||||||
#endif
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
printf ("FAIL: Failed to call is* functions.\n");
|
printf ("FAIL: Failed to call is* functions.\n");
|
||||||
|
@ -77,9 +77,7 @@ do_test (void)
|
|||||||
{
|
{
|
||||||
check_type<float> ();
|
check_type<float> ();
|
||||||
check_type<double> ();
|
check_type<double> ();
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
check_type<long double> ();
|
check_type<long double> ();
|
||||||
#endif
|
|
||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,9 +57,7 @@ do_test (void)
|
|||||||
while (0)
|
while (0)
|
||||||
NAN_TEST (float, nanf);
|
NAN_TEST (float, nanf);
|
||||||
NAN_TEST (double, nan);
|
NAN_TEST (double, nan);
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
NAN_TEST (long double, nanl);
|
NAN_TEST (long double, nanl);
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,9 +112,7 @@ do_test (void)
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
RUN_TESTS (float, strtof, nanf, FLT_MANT_DIG);
|
RUN_TESTS (float, strtof, nanf, FLT_MANT_DIG);
|
||||||
RUN_TESTS (double, strtod, nan, DBL_MANT_DIG);
|
RUN_TESTS (double, strtod, nan, DBL_MANT_DIG);
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
RUN_TESTS (long double, strtold, nanl, LDBL_MANT_DIG);
|
RUN_TESTS (long double, strtold, nanl, LDBL_MANT_DIG);
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,9 +46,7 @@ NAME (void) \
|
|||||||
|
|
||||||
TEST_FUNC (float_test, float, f)
|
TEST_FUNC (float_test, float, f)
|
||||||
TEST_FUNC (double_test, double, )
|
TEST_FUNC (double_test, double, )
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
TEST_FUNC (ldouble_test, long double, l)
|
TEST_FUNC (ldouble_test, long double, l)
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
do_test (void)
|
do_test (void)
|
||||||
@ -61,10 +59,8 @@ do_test (void)
|
|||||||
int result = float_test ();
|
int result = float_test ();
|
||||||
feenableexcept (FE_INEXACT);
|
feenableexcept (FE_INEXACT);
|
||||||
result |= double_test ();
|
result |= double_test ();
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
feenableexcept (FE_INEXACT);
|
feenableexcept (FE_INEXACT);
|
||||||
result |= ldouble_test ();
|
result |= ldouble_test ();
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,18 +69,14 @@ NAME (void) \
|
|||||||
|
|
||||||
TEST_FUNC (float_test, float, f)
|
TEST_FUNC (float_test, float, f)
|
||||||
TEST_FUNC (double_test, double, )
|
TEST_FUNC (double_test, double, )
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
TEST_FUNC (ldouble_test, long double, l)
|
TEST_FUNC (ldouble_test, long double, l)
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
do_test (void)
|
do_test (void)
|
||||||
{
|
{
|
||||||
int result = float_test ();
|
int result = float_test ();
|
||||||
result |= double_test ();
|
result |= double_test ();
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
result |= ldouble_test ();
|
result |= ldouble_test ();
|
||||||
#endif
|
|
||||||
if (!any_supported)
|
if (!any_supported)
|
||||||
return 77;
|
return 77;
|
||||||
return result;
|
return result;
|
||||||
|
@ -26,8 +26,7 @@ do_test (void)
|
|||||||
{
|
{
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG == 64
|
||||||
# if LDBL_MANT_DIG == 64
|
|
||||||
{
|
{
|
||||||
long double x = 1e-20;
|
long double x = 1e-20;
|
||||||
union ieee854_long_double u;
|
union ieee854_long_double u;
|
||||||
@ -43,7 +42,6 @@ do_test (void)
|
|||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -59,8 +59,6 @@ main (void)
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
RUN_TESTS (lgammaf, float);
|
RUN_TESTS (lgammaf, float);
|
||||||
RUN_TESTS (lgamma, double);
|
RUN_TESTS (lgamma, double);
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
RUN_TESTS (lgammal, long double);
|
RUN_TESTS (lgammal, long double);
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -54,10 +54,8 @@ do_test (void)
|
|||||||
RUN_TESTS (gammaf, float);
|
RUN_TESTS (gammaf, float);
|
||||||
RUN_TESTS (lgamma, double);
|
RUN_TESTS (lgamma, double);
|
||||||
RUN_TESTS (gamma, double);
|
RUN_TESTS (gamma, double);
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
RUN_TESTS (lgammal, long double);
|
RUN_TESTS (lgammal, long double);
|
||||||
RUN_TESTS (gammal, long double);
|
RUN_TESTS (gammal, long double);
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,8 +64,6 @@ main (void)
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
RUN_TESTS (lgammaf, float);
|
RUN_TESTS (lgammaf, float);
|
||||||
RUN_TESTS (lgamma, double);
|
RUN_TESTS (lgamma, double);
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
RUN_TESTS (lgammal, long double);
|
RUN_TESTS (lgammal, long double);
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -123,9 +123,7 @@ NAME (void) \
|
|||||||
|
|
||||||
TEST_FUNC (float_test, float, f)
|
TEST_FUNC (float_test, float, f)
|
||||||
TEST_FUNC (double_test, double, )
|
TEST_FUNC (double_test, double, )
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
TEST_FUNC (ldouble_test, long double, l)
|
TEST_FUNC (ldouble_test, long double, l)
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
do_test (void)
|
do_test (void)
|
||||||
@ -134,9 +132,7 @@ do_test (void)
|
|||||||
|
|
||||||
float_test ();
|
float_test ();
|
||||||
double_test ();
|
double_test ();
|
||||||
#ifndef NO_LONG_DOUBLE
|
|
||||||
ldouble_test ();
|
ldouble_test ();
|
||||||
#endif
|
|
||||||
|
|
||||||
return errors != 0;
|
return errors != 0;
|
||||||
}
|
}
|
||||||
|
@ -47,12 +47,8 @@ our_error (const char *c)
|
|||||||
CHECK_RET_CONST_TYPE (func, rettype, fx, float, ## __VA_ARGS__)
|
CHECK_RET_CONST_TYPE (func, rettype, fx, float, ## __VA_ARGS__)
|
||||||
#define CHECK_RET_CONST_DOUBLE(func, rettype, ...) \
|
#define CHECK_RET_CONST_DOUBLE(func, rettype, ...) \
|
||||||
CHECK_RET_CONST_TYPE (func, rettype, dx, double, ## __VA_ARGS__)
|
CHECK_RET_CONST_TYPE (func, rettype, dx, double, ## __VA_ARGS__)
|
||||||
#ifdef NO_LONG_DOUBLE
|
#define CHECK_RET_CONST_LDOUBLE(func, rettype, ...) \
|
||||||
# define CHECK_RET_CONST_LDOUBLE(func, rettype, ...)
|
|
||||||
#else
|
|
||||||
# define CHECK_RET_CONST_LDOUBLE(func, rettype, ...) \
|
|
||||||
CHECK_RET_CONST_TYPE (func, rettype, lx, long double, ## __VA_ARGS__)
|
CHECK_RET_CONST_TYPE (func, rettype, lx, long double, ## __VA_ARGS__)
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CHECK_RET_CONST(func, rettype, ...) \
|
#define CHECK_RET_CONST(func, rettype, ...) \
|
||||||
static void \
|
static void \
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#ifndef HAVE_MAIN
|
#ifndef HAVE_MAIN
|
||||||
#undef __NO_MATH_INLINES
|
#undef __NO_MATH_INLINES
|
||||||
#define __NO_MATH_INLINES 1
|
#define __NO_MATH_INLINES 1
|
||||||
|
#include <float.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -30,7 +31,7 @@
|
|||||||
|
|
||||||
static void compile_test (void);
|
static void compile_test (void);
|
||||||
static void compile_testf (void);
|
static void compile_testf (void);
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
static void compile_testl (void);
|
static void compile_testl (void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -135,7 +136,7 @@ do_test (void)
|
|||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
count_float = count_double = count_ldouble = 0;
|
count_float = count_double = count_ldouble = 0;
|
||||||
count_cfloat = count_cdouble = count_cldouble = 0;
|
count_cfloat = count_cdouble = count_cldouble = 0;
|
||||||
compile_testl ();
|
compile_testl ();
|
||||||
@ -200,7 +201,7 @@ do_test (void)
|
|||||||
#define ccount count_cfloat
|
#define ccount count_cfloat
|
||||||
#include "test-tgmath.c"
|
#include "test-tgmath.c"
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
#define F(name) name##l
|
#define F(name) name##l
|
||||||
#define TYPE long double
|
#define TYPE long double
|
||||||
#define x lx
|
#define x lx
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#ifndef HAVE_MAIN
|
#ifndef HAVE_MAIN
|
||||||
#undef __NO_MATH_INLINES
|
#undef __NO_MATH_INLINES
|
||||||
#define __NO_MATH_INLINES 1
|
#define __NO_MATH_INLINES 1
|
||||||
|
#include <float.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <complex.h>
|
#include <complex.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -30,7 +31,7 @@
|
|||||||
|
|
||||||
typedef complex float cfloat;
|
typedef complex float cfloat;
|
||||||
typedef complex double cdouble;
|
typedef complex double cdouble;
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
typedef long double ldouble;
|
typedef long double ldouble;
|
||||||
typedef complex long double cldouble;
|
typedef complex long double cldouble;
|
||||||
#else
|
#else
|
||||||
@ -62,7 +63,7 @@ enum
|
|||||||
Tcfloat,
|
Tcfloat,
|
||||||
Tdouble,
|
Tdouble,
|
||||||
Tcdouble,
|
Tcdouble,
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
Tldouble,
|
Tldouble,
|
||||||
Tcldouble,
|
Tcldouble,
|
||||||
#else
|
#else
|
||||||
@ -470,7 +471,7 @@ do_test (void)
|
|||||||
#define C Tcfloat
|
#define C Tcfloat
|
||||||
#include "test-tgmath2.c"
|
#include "test-tgmath2.c"
|
||||||
|
|
||||||
#ifndef NO_LONG_DOUBLE
|
#if LDBL_MANT_DIG > DBL_MANT_DIG
|
||||||
#define F(name) name##l
|
#define F(name) name##l
|
||||||
#define TYPE ldouble
|
#define TYPE ldouble
|
||||||
#define CTYPE cldouble
|
#define CTYPE cldouble
|
||||||
|
Loading…
Reference in New Issue
Block a user