@@ -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[];