From 7eeb81a9516663d589e692b278907bb5f3d60ea0 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Sun, 18 Sep 2022 16:24:36 +0200 Subject: [PATCH] [PR68097] Non-negative frange's should not contain NANs. PR 68097/tree-optimization gcc/ChangeLog: * value-range.cc (frange::set_nonnegative): Clear NAN. (range_tests_signed_zeros): New test. --- gcc/value-range.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/value-range.cc b/gcc/value-range.cc index 67d5d7fa90f..6e703c7eb43 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -752,6 +752,7 @@ void frange::set_nonnegative (tree type) { set (type, dconst0, dconstinf); + clear_nan (); } // Here we copy between any two irange's. The ranges can be legacy or @@ -3800,6 +3801,10 @@ range_tests_signed_zeros () r1.update_nan (); r0.intersect (r1); ASSERT_TRUE (r0.known_isnan ()); + + // Non-negative ranges should not contain NANs. + r0.set_nonnegative (float_type_node); + ASSERT_TRUE (!r0.maybe_isnan ()); } static void -- 2.37.1