https://gcc.gnu.org/g:ec44df73232d07a66fea719c5aaddb6734321c4f

commit r16-1675-gec44df73232d07a66fea719c5aaddb6734321c4f
Author: Andrew MacLeod <amacl...@redhat.com>
Date:   Thu Jun 19 21:19:27 2025 -0400

    Promote verify_range to vrange.
    
    most range classes had a verufy_range, but it was all private. Make it a
    supported routine from vrange.
    
            * value-range.cc (frange::verify_range): Constify.
            (irange::verify_range): Constify.
            * value-range.h (vrange::verify_range): New.
            (irange::verify_range): Make public.
            (prange::verify_range): Make public.
            (prange::verify_range): Make public.
            (value_range::verify_range): New.

Diff:
---
 gcc/value-range.cc | 4 ++--
 gcc/value-range.h  | 9 +++++----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/gcc/value-range.cc b/gcc/value-range.cc
index 85c1e26287e9..dc6909e77c54 100644
--- a/gcc/value-range.cc
+++ b/gcc/value-range.cc
@@ -1205,7 +1205,7 @@ frange::supports_type_p (const_tree type) const
 }
 
 void
-frange::verify_range ()
+frange::verify_range () const
 {
   if (!undefined_p ())
     gcc_checking_assert (HONOR_NANS (m_type) || !maybe_isnan ());
@@ -1515,7 +1515,7 @@ irange::set (tree min, tree max, value_range_kind kind)
 // Check the validity of the range.
 
 void
-irange::verify_range ()
+irange::verify_range () const
 {
   gcc_checking_assert (m_discriminator == VR_IRANGE);
   if (m_kind == VR_UNDEFINED)
diff --git a/gcc/value-range.h b/gcc/value-range.h
index c32c5076b63a..5c358f3c70cd 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -111,6 +111,7 @@ public:
   bool operator== (const vrange &) const;
   bool operator!= (const vrange &r) const { return !(*this == r); }
   void dump (FILE *) const;
+  virtual void verify_range () const { }
 protected:
   vrange (enum value_range_discriminator d) : m_discriminator (d) { }
   ENUM_BITFIELD(value_range_kind) m_kind : 8;
@@ -323,6 +324,7 @@ public:
   virtual void update_bitmask (const class irange_bitmask &) override;
   virtual irange_bitmask get_bitmask () const override;
 
+  virtual void verify_range () const;
 protected:
   void maybe_resize (int needed);
   virtual void set (tree, tree, value_range_kind = VR_RANGE) override;
@@ -335,7 +337,6 @@ protected:
 
   void normalize_kind ();
 
-  void verify_range ();
 
   // Hard limit on max ranges allowed.
   static const int HARD_MAX_RANGES = 255;
@@ -421,7 +422,7 @@ public:
   bool contains_p (const wide_int &) const;
   wide_int lower_bound () const;
   wide_int upper_bound () const;
-  void verify_range () const;
+  virtual void verify_range () const;
   irange_bitmask get_bitmask () const final override;
   void update_bitmask (const irange_bitmask &) final override;
 protected:
@@ -593,14 +594,13 @@ public:
   bool nan_signbit_p (bool &signbit) const;
   bool known_isnormal () const;
   bool known_isdenormal_or_zero () const;
-
+  virtual void verify_range () const;
 protected:
   virtual bool contains_p (tree cst) const override;
   virtual void set (tree, tree, value_range_kind = VR_RANGE) override;
 
 private:
   bool internal_singleton_p (REAL_VALUE_TYPE * = NULL) const;
-  void verify_range ();
   bool normalize_kind ();
   bool union_nans (const frange &);
   bool intersect_nans (const frange &);
@@ -798,6 +798,7 @@ public:
   void update_bitmask (const class irange_bitmask &bm)
   { return m_vrange->update_bitmask (bm); }
   void accept (const vrange_visitor &v) const { m_vrange->accept (v); }
+  void verify_range () const { m_vrange->verify_range (); }
 private:
   void init (tree type);
   void init (const vrange &);

Reply via email to