]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Cleanups to unsupported_range.
authorAldy Hernandez <aldyh@redhat.com>
Tue, 30 Apr 2024 16:54:11 +0000 (18:54 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Wed, 1 May 2024 07:37:04 +0000 (09:37 +0200)
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
gcc/value-range.h

index ca6d521c62504afc982789ecd864e171cfce716a..7250115261f9fc70606fafa14d06a2cf6f4f2c27 100644 (file)
@@ -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 ();
index 11c73faca1bd4e853389dcfe77cc1916eb52748a..471f362f388b12e1d38cab253379bf05ea1ce3d1 100644 (file)
@@ -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;
 };