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 &);