mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-19 13:40:59 +08:00
Handle narrowing function sNaN test disabling based on argument format.
Testing narrowing functions for x86_64 with GCC 6 showed up a further testsuite fix needed: there is no _Float128 sNaN support before GCC 7 on x86_64 / x86, and the existing tests of SNAN_TESTS only checked it for the return type, not for the argument type. This patch fixes the code to check SNAN_TESTS (ARG_FLOAT) as well (in a variable set in libm-test-driver.c, since libm-test-support.c is compiled only once for each choice of FLOAT). Tested for x86_64 and x86 with GCC 6 in conjunction with the main patch adding narrowing add functions. * math/libm-test-driver.c (snan_tests_arg): New variable. * math/libm-test-support.h (snan_tests_arg): New declaration. * math/libm-test-support.c (enable_test): Check snan_tests_arg.
This commit is contained in:
parent
8e554659ad
commit
3195833899
@ -1,5 +1,9 @@
|
||||
2018-02-09 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* math/libm-test-driver.c (snan_tests_arg): New variable.
|
||||
* math/libm-test-support.h (snan_tests_arg): New declaration.
|
||||
* math/libm-test-support.c (enable_test): Check snan_tests_arg.
|
||||
|
||||
* math/Makefile (test-type-pairs): New variable.
|
||||
(test-type-pairs-f64xf128-yes): Likewise.
|
||||
(tests): Add test-narrow-macros.
|
||||
|
@ -27,6 +27,12 @@ const int flag_test_finite = TEST_FINITE;
|
||||
const int flag_test_inline = TEST_INLINE;
|
||||
const int flag_test_mathvec = TEST_MATHVEC;
|
||||
|
||||
#if TEST_NARROW
|
||||
const int snan_tests_arg = SNAN_TESTS (ARG_FLOAT);
|
||||
#else
|
||||
const int snan_tests_arg = SNAN_TESTS (FLOAT);
|
||||
#endif
|
||||
|
||||
#define STRX(x) #x
|
||||
#define STR(x) STRX (x)
|
||||
#define STR_FLOAT STR (FLOAT)
|
||||
|
@ -985,7 +985,8 @@ enable_test (int exceptions)
|
||||
return 0;
|
||||
if (flag_test_finite && (exceptions & NON_FINITE) != 0)
|
||||
return 0;
|
||||
if (!SNAN_TESTS (FLOAT) && (exceptions & TEST_SNAN) != 0)
|
||||
if ((!SNAN_TESTS (FLOAT) || !snan_tests_arg)
|
||||
&& (exceptions & TEST_SNAN) != 0)
|
||||
return 0;
|
||||
if (flag_test_mathvec && (exceptions & NO_TEST_MATHVEC) != 0)
|
||||
return 0;
|
||||
|
@ -37,6 +37,7 @@ extern const int flag_test_exceptions;
|
||||
extern const int flag_test_finite;
|
||||
extern const int flag_test_inline;
|
||||
extern const int flag_test_mathvec;
|
||||
extern const int snan_tests_arg;
|
||||
extern const char test_msg[];
|
||||
extern const char qtype_str[];
|
||||
extern const char doc[];
|
||||
|
Loading…
x
Reference in New Issue
Block a user