https://gcc.gnu.org/g:a5d4ef63b349f5729b5d6ff940c8f490754df75c

commit r17-3144-ga5d4ef63b349f5729b5d6ff940c8f490754df75c
Author: Aldy Hernandez <[email protected]>
Date:   Fri Aug 7 14:32:40 2026 +0000

    [frange] Guard sign-zero self test with HONOR_SIGNED_ZEROS [PR126714]
    
    frange_add_zeros's multi-range conversion added a self-test that
    assumes signed zeros exist, which is not the case on VAX.  Guard such
    test with HONOR_SIGNED_ZEROS.
    
    gcc/ChangeLog:
    
            PR tree-optimization/126714
            * range-op-float.cc (range_op_float_tests): Guard the signed-zero
            == op1_range self-test with HONOR_SIGNED_ZEROS.

Diff:
---
 gcc/range-op-float.cc | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc
index 14810bd858e7..30d22a98ae55 100644
--- a/gcc/range-op-float.cc
+++ b/gcc/range-op-float.cc
@@ -3227,15 +3227,18 @@ range_op_float_tests ()
 
   // op1_range for "op1 == op2" where op2 = [-1.0,-0.0][1.0,1.0] holds -0.0 but
   // not +0.0 must still admit +0.0 for op1, since -0.0 == +0.0.
-  r0 = frange_float ("-1.0", "-0.0");
-  r1 = frange_float ("1.0", "1.0");
-  r0.union_ (r1);
-  r0.clear_nan ();
-  ASSERT_FALSE (r0.contains_p (dconst0));
-  ASSERT_TRUE (r0.contains_p (dconstm0));
-  int_range<2> bool_true = range_true ();
-  range_op_handler (EQ_EXPR).op1_range (r, float_type_node, bool_true, r0);
-  ASSERT_TRUE (r.contains_p (dconst0));
+  if (HONOR_SIGNED_ZEROS (float_type_node))
+    {
+      r0 = frange_float ("-1.0", "-0.0");
+      r1 = frange_float ("1.0", "1.0");
+      r0.union_ (r1);
+      r0.clear_nan ();
+      ASSERT_FALSE (r0.contains_p (dconst0));
+      ASSERT_TRUE (r0.contains_p (dconstm0));
+      int_range<2> bool_true = range_true ();
+      range_op_handler (EQ_EXPR).op1_range (r, float_type_node, bool_true, r0);
+      ASSERT_TRUE (r.contains_p (dconst0));
+    }
 
   // negate([1, 2] U [10, 11]) => [-11, -10] U [-2, -1], keeping the gap.
   r0 = frange_float ("1.0", "2.0");

Reply via email to