3
3
// expected-no-diagnostics
4
4
5
5
constexpr double NaN = __builtin_nan(" " );
6
+ constexpr double SNaN = __builtin_nans(" " );
6
7
constexpr double Inf = __builtin_inf();
7
8
constexpr double NegInf = -__builtin_inf();
8
9
@@ -19,6 +20,18 @@ constexpr double NegInf = -__builtin_inf();
19
20
static_assert (T(1.2345 ) == FUNC(T(1.2345 ), NaN)); \
20
21
static_assert (__builtin_isnan(FUNC(NaN, NaN)));
21
22
23
+ #define FMINIMUMNUM_TEST_SNAN (T, FUNC ) \
24
+ static_assert (Inf == FUNC(SNaN, Inf)); \
25
+ static_assert (NegInf == FUNC(NegInf, SNaN)); \
26
+ static_assert (0.0 == FUNC(SNaN, 0.0 )); \
27
+ static_assert (-0.0 == FUNC(-0.0 , SNaN)); \
28
+ static_assert (T(-1.2345 ) == FUNC(SNaN, T(-1.2345 ))); \
29
+ static_assert (T(1.2345 ) == FUNC(T(1.2345 ), SNaN)); \
30
+ static_assert (__builtin_isnan(FUNC(SNaN, SNaN))); \
31
+ static_assert (__builtin_isnan(FUNC(NaN, SNaN))); \
32
+ static_assert (!__builtin_issignaling(FUNC(SNaN, SNaN))); \
33
+ static_assert (!__builtin_issignaling(FUNC(NaN, SNaN)));
34
+
22
35
#define FMINIMUMNUM_TEST_INF (T, FUNC ) \
23
36
static_assert (NegInf == FUNC(NegInf, Inf)); \
24
37
static_assert (0.0 == FUNC(Inf, 0.0 )); \
@@ -42,6 +55,7 @@ constexpr double NegInf = -__builtin_inf();
42
55
#define LIST_FMINIMUMNUM_TESTS (T, FUNC ) \
43
56
FMINIMUMNUM_TEST_SIMPLE (T, FUNC) \
44
57
FMINIMUMNUM_TEST_NAN(T, FUNC) \
58
+ FMINIMUMNUM_TEST_SNAN(T, FUNC) \
45
59
FMINIMUMNUM_TEST_INF(T, FUNC) \
46
60
FMINIMUMNUM_TEST_NEG_INF(T, FUNC) \
47
61
FMINIMUMNUM_TEST_BOTH_ZERO(T, FUNC)
0 commit comments