Skip to content

Commit 1938737

Browse files
committed
test: Skip nexttoward_1_snan on clang soft ld targets
When the target has no hardware support for long double, but does have hardware for float or double, compiler.rt is inconsistent about reporting FE_INVALID. Signed-off-by: Keith Packard <[email protected]>
1 parent c2ec30b commit 1938737

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

test/math_errhandling_tests.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,10 @@ static FLOAT_T makemathname(test_nexttoward_negmin_neg1)(void) { return makemath
489489
static FLOAT_T makemathname(test_nexttoward_qnan_1)(void) { return makemathname(nexttoward)(makemathname(qnanval), makelname(one)); }
490490
static FLOAT_T makemathname(test_nexttoward_snan_1)(void) { return makemathname(nexttoward)(makemathname(snanval), makelname(one)); }
491491
static FLOAT_T makemathname(test_nexttoward_1_qnan)(void) { return makemathname(nexttoward)(makemathname(one), makelname(qnanval)); }
492+
#if !defined(__clang__) || !defined(PICOLIBC_LONG_DOUBLE_NOEXCEPT)
493+
/* compiler.rt is inconsistent when dealing with long double snan on hardware with only non-ld floats */
492494
static FLOAT_T makemathname(test_nexttoward_1_snan)(void) { return makemathname(nexttoward)(makemathname(one), makelname(snanval)); }
495+
#endif
493496
static FLOAT_T makemathname(test_nexttoward_max_inf)(void) { return makemathname(nexttoward)(makemathname(max_val), makelname(infval)); }
494497
static FLOAT_T makemathname(test_nexttoward_negmax_neginf)(void) { return makemathname(nexttoward)(-makemathname(max_val), -makelname(infval)); }
495498
static FLOAT_T makemathname(test_nexttoward_min_0)(void) { return makemathname(nexttoward)(makemathname(min_val), makelname(zero)); }
@@ -1287,7 +1290,9 @@ const struct {
12871290
TEST(nexttoward_qnan_1, (FLOAT_T)NAN, 0, 0),
12881291
TEST(nexttoward_snan_1, (FLOAT_T)NAN, FE_INVALID, 0),
12891292
TEST(nexttoward_1_qnan, (FLOAT_T)NAN, 0, 0),
1293+
#if !defined(__clang__) || !defined(PICOLIBC_LONG_DOUBLE_NOEXCEPT)
12901294
TEST(nexttoward_1_snan, (FLOAT_T)NAN, FE_INVALID, 0),
1295+
#endif
12911296
TEST(nexttoward_max_inf, (FLOAT_T)INFINITY, FE_OVERFLOW, ERANGE),
12921297
TEST(nexttoward_negmax_neginf, -(FLOAT_T)INFINITY, FE_OVERFLOW, ERANGE),
12931298
TEST(nexttoward_min_0, (FLOAT_T)0, FE_UNDERFLOW, ERANGE),

0 commit comments

Comments
 (0)