diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/value-range.cc | 8 | ||||
-rw-r--r-- | gcc/value-range.h | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/value-range.cc b/gcc/value-range.cc index dc42b6d..505eb92 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -422,7 +422,7 @@ frange::combine_zeros (const frange &r, bool union_p) if (maybe_isnan ()) m_kind = VR_NAN; else - m_kind = VR_UNDEFINED; + set_undefined (); changed = true; } return changed; @@ -506,7 +506,7 @@ frange::intersect_nans (const frange &r) if (maybe_isnan ()) m_kind = VR_NAN; else - m_kind = VR_UNDEFINED; + set_undefined (); if (flag_checking) verify_range (); return true; @@ -558,7 +558,7 @@ frange::intersect (const vrange &v) if (maybe_isnan ()) m_kind = VR_NAN; else - m_kind = VR_UNDEFINED; + set_undefined (); if (flag_checking) verify_range (); return true; @@ -696,7 +696,7 @@ frange::verify_range () switch (m_kind) { case VR_UNDEFINED: - // m_type is ignored. + gcc_checking_assert (!m_type); return; case VR_VARYING: gcc_checking_assert (m_type); diff --git a/gcc/value-range.h b/gcc/value-range.h index 325ed08..3668b33 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -1083,6 +1083,10 @@ inline void frange::set_undefined () { m_kind = VR_UNDEFINED; + m_type = NULL; + m_pos_nan = false; + m_neg_nan = false; + // m_min and m_min are unitialized as they are REAL_VALUE_TYPE ??. if (flag_checking) verify_range (); } |