diff mbox series

[COMMITTED] Cleanups to unsupported_range.

Message ID 20240501074150.304170-1-aldyh@redhat.com
State New
Headers show
Series [COMMITTED] Cleanups to unsupported_range. | expand

Commit Message

Aldy Hernandez May 1, 2024, 7:41 a.m. UTC
Here are some cleanups to unsupported_range so the assignment operator
takes an unsupported_range and behaves like the other ranges.  This
makes subsequent cleanups easier.

gcc/ChangeLog:

	* value-range.cc (unsupported_range::union_): Cast vrange to
	unsupported_range.
	(unsupported_range::intersect): Same.
	(unsupported_range::operator=): Make argument an unsupported_range.
	* value-range.h: New constructor.
---
 gcc/value-range.cc | 10 +++++++---
 gcc/value-range.h  |  7 ++++++-
 2 files changed, 13 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/gcc/value-range.cc b/gcc/value-range.cc
index ca6d521c625..7250115261f 100644
--- a/gcc/value-range.cc
+++ b/gcc/value-range.cc
@@ -147,8 +147,10 @@  unsupported_range::set_varying (tree)
 }
 
 bool
-unsupported_range::union_ (const vrange &r)
+unsupported_range::union_ (const vrange &v)
 {
+  const unsupported_range &r = as_a <unsupported_range> (v);
+
   if (r.undefined_p () || varying_p ())
     return false;
   if (undefined_p () || r.varying_p ())
@@ -161,8 +163,10 @@  unsupported_range::union_ (const vrange &r)
 }
 
 bool
-unsupported_range::intersect (const vrange &r)
+unsupported_range::intersect (const vrange &v)
 {
+  const unsupported_range &r = as_a <unsupported_range> (v);
+
   if (undefined_p () || r.varying_p ())
     return false;
   if (r.undefined_p ())
@@ -216,7 +220,7 @@  unsupported_range::fits_p (const vrange &) const
 }
 
 unsupported_range &
-unsupported_range::operator= (const vrange &r)
+unsupported_range::operator= (const unsupported_range &r)
 {
   if (r.undefined_p ())
     set_undefined ();
diff --git a/gcc/value-range.h b/gcc/value-range.h
index 11c73faca1b..471f362f388 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -389,6 +389,11 @@  public:
   {
     set_undefined ();
   }
+  unsupported_range (const unsupported_range &src)
+    : vrange (VR_UNKNOWN)
+  {
+    unsupported_range::operator= (src);
+  }
   void set (tree min, tree, value_range_kind = VR_RANGE) final override;
   tree type () const final override;
   bool supports_type_p (const_tree) const final override;
@@ -405,7 +410,7 @@  public:
   void set_zero (tree type) final override;
   void set_nonnegative (tree type) final override;
   bool fits_p (const vrange &) const final override;
-  unsupported_range& operator= (const vrange &r);
+  unsupported_range& operator= (const unsupported_range &r);
   tree lbound () const final override;
   tree ubound () const final override;
 };