]> Savannah Git Hosting - gnulib.git/commitdiff
signbit tests: Strengthen tests.
authorBruno Haible <bruno@clisp.org>
Wed, 4 Oct 2023 08:20:22 +0000 (10:20 +0200)
committerBruno Haible <bruno@clisp.org>
Wed, 4 Oct 2023 08:20:22 +0000 (10:20 +0200)
* tests/test-signbit.c (test_signbitf, test_signbitd, test_signbitl):
Test the sign bit both of a NaN value and of its negative.

ChangeLog
tests/test-signbit.c

index 02531f08f6fc525ee5ea4cfe96df78b02011ae00..29d411c52571c87e83173485d8bdc2732d970729 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-10-04  Bruno Haible  <bruno@clisp.org>
+
+       signbit tests: Strengthen tests.
+       * tests/test-signbit.c (test_signbitf, test_signbitd, test_signbitl):
+       Test the sign bit both of a NaN value and of its negative.
+
 2023-10-03  Bruno Haible  <bruno@clisp.org>
 
        doc: Document portability of __VA_ARGS__.
index 49083c2c9a9a74a22c2fb008aeb957d3f0c5654f..3d2fae405b53a1ff9788ce952d6b086a27d9614e 100644 (file)
@@ -56,7 +56,17 @@ test_signbitf ()
   ASSERT (!signbit (Infinityf ()));
   ASSERT (signbit (- Infinityf ()));
   /* Quiet NaN.  */
-  (void) signbit (zerof / zerof);
+  {
+    float nan = zerof / zerof;
+    float pos_nan;
+    float neg_nan;
+    if (signbit (nan))
+      pos_nan = - nan, neg_nan = nan;
+    else
+      pos_nan = nan, neg_nan = - nan;
+    ASSERT (!signbit (pos_nan));
+    ASSERT (signbit (neg_nan));
+  }
 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
   /* Signalling NaN.  */
   {
@@ -101,7 +111,17 @@ test_signbitd ()
   ASSERT (!signbit (Infinityd ()));
   ASSERT (signbit (- Infinityd ()));
   /* Quiet NaN.  */
-  (void) signbit (zerod / zerod);
+  {
+    double nan = zerod / zerod;
+    double pos_nan;
+    double neg_nan;
+    if (signbit (nan))
+      pos_nan = - nan, neg_nan = nan;
+    else
+      pos_nan = nan, neg_nan = - nan;
+    ASSERT (!signbit (pos_nan));
+    ASSERT (signbit (neg_nan));
+  }
 #if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
   /* Signalling NaN.  */
   {
@@ -144,7 +164,17 @@ test_signbitl ()
   ASSERT (!signbit (Infinityl ()));
   ASSERT (signbit (- Infinityl ()));
   /* Quiet NaN.  */
-  (void) signbit (zerol / zerol);
+  {
+    long double nan = zerol / zerol;
+    long double pos_nan;
+    long double neg_nan;
+    if (signbit (nan))
+      pos_nan = - nan, neg_nan = nan;
+    else
+      pos_nan = nan, neg_nan = - nan;
+    ASSERT (!signbit (pos_nan));
+    ASSERT (signbit (neg_nan));
+  }
 #if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
   /* Signalling NaN.  */
   {