aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ipa-cp.cc13
-rw-r--r--gcc/value-range.cc5
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)