Use the value_range_base constructors in value_range_base::invert to
make sure we build canonically correct ranges. From-SVN: r277794
This commit is contained in:
parent
a1b6805971
commit
8ced1d76b1
@ -1,3 +1,8 @@
|
||||
2019-11-04 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* tree-vrp.c (value_range_base::invert): Use constructors to build
|
||||
range.
|
||||
|
||||
2019-11-04 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* tree-vrp.c (range_int_cst_singleton_p): Remove.
|
||||
|
@ -6286,10 +6286,12 @@ value_range_base::contains_p (tree cst) const
|
||||
void
|
||||
value_range_base::invert ()
|
||||
{
|
||||
/* We can't just invert VR_RANGE and VR_ANTI_RANGE because we may
|
||||
create non-canonical ranges. Use the constructors instead. */
|
||||
if (m_kind == VR_RANGE)
|
||||
m_kind = VR_ANTI_RANGE;
|
||||
*this = value_range_base (VR_ANTI_RANGE, m_min, m_max);
|
||||
else if (m_kind == VR_ANTI_RANGE)
|
||||
m_kind = VR_RANGE;
|
||||
*this = value_range_base (VR_RANGE, m_min, m_max);
|
||||
else
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user