diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ipa-cp.cc | 13 | ||||
-rw-r--r-- | gcc/value-range.cc | 5 |
2 files changed, 13 insertions, 5 deletions
diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc index 1f5e0e1..8cd0fa2 100644 --- a/gcc/ipa-cp.cc +++ b/gcc/ipa-cp.cc @@ -1040,9 +1040,16 @@ ipcp_vr_lattice::meet_with_1 (const value_range *other_vr) if (other_vr->varying_p ()) return set_to_bottom (); - value_range save (m_vr); - m_vr.union_ (*other_vr); - return m_vr != save; + bool res; + if (flag_checking) + { + value_range save (m_vr); + res = m_vr.union_ (*other_vr); + gcc_assert (res == (m_vr != save)); + } + else + res = m_vr.union_ (*other_vr); + return res; } /* Return true if value range information in the lattice is yet unknown. */ diff --git a/gcc/value-range.cc b/gcc/value-range.cc index def9299..a341cec 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -1859,12 +1859,13 @@ irange::union_nonzero_bits (const irange &r) bool changed = false; if (m_nonzero_mask != r.m_nonzero_mask) { - m_nonzero_mask = get_nonzero_bits () | r.get_nonzero_bits (); + wide_int save = get_nonzero_bits (); + m_nonzero_mask = save | r.get_nonzero_bits (); // No need to call set_range_from_nonzero_bits, because we'll // never narrow the range. Besides, it would cause endless // recursion because of the union_ in // set_range_from_nonzero_bits. - changed = true; + changed = m_nonzero_mask != save; } normalize_kind (); if (flag_checking) |