From 1d8c107d49ec09ff7a953e4cbcaa0c5137b9367d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 13 Sep 2022 16:28:18 +0300 Subject: [PATCH] test: crt-test: Skip a test for cos(-NAN) == -NAN when optimizing Both GCC and Clang fail this test if optimizations are enabled. --- test/crt-test.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/crt-test.c b/test/crt-test.c index 07fbbbd..e577ff4 100644 --- a/test/crt-test.c +++ b/test/crt-test.c @@ -1087,13 +1087,19 @@ int main(int argc, char* argv[]) { TEST_FLT_ACCURACY(cos(2*F(3.141592654)), 1.0, 0.01); \ TEST_FLT_NAN_ANY(cos(F(INFINITY))); \ TEST_FLT_NAN_ANY(cos(F(-INFINITY))); \ - TEST_FLT_NAN(cos(F(NAN)), F(NAN)); \ - TEST_FLT_NAN(cos(-F(NAN)), -F(NAN)) + TEST_FLT_NAN(cos(F(NAN)), F(NAN)) TEST_COS(cos); TEST_COS(cosf); TEST_COS(cosl); +#ifndef __OPTIMIZE__ + // GCC and Clang break this test when optimizing. + TEST_FLT_NAN(cos(-F(NAN)), -F(NAN)); + TEST_FLT_NAN(cosf(-F(NAN)), -F(NAN)); + TEST_FLT_NAN(cosl(-F(NAN)), -F(NAN)); +#endif + #define TEST_SIN(sin) \ TEST_FLT_ACCURACY(sin(F(0.0)), 0.0, 0.01); \ TEST_FLT_ACCURACY(sin(F(3.141592654)/2), 1.0, 0.01); \