Message ID | 20230423090453.87556-1-aldyh@redhat.com |
---|---|
State | New |
Headers | show |
Series | [COMMITTED] Handle NANs in frange::operator== [PR109593] | expand |
diff --git a/gcc/value-range.cc b/gcc/value-range.cc index 17f4e1b9f59..97162413727 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -682,6 +682,16 @@ frange::operator== (const frange &src) const if (varying_p ()) return types_compatible_p (m_type, src.m_type); + bool nan1 = known_isnan (); + bool nan2 = src.known_isnan (); + if (nan1 || nan2) + { + if (nan1 && nan2) + return (m_pos_nan == src.m_pos_nan + && m_neg_nan == src.m_neg_nan); + return false; + } + return (real_identical (&m_min, &src.m_min) && real_identical (&m_max, &src.m_max) && m_pos_nan == src.m_pos_nan