Richi mentioned in PR113476 that it would be cleaner to move the destructor from int_range to the base class. Although this isn't strictly necessary, as there are no users, it is good to future proof things, and the overall impact is miniscule.
gcc/ChangeLog: * value-range.h (vrange::~vrange): New. (int_range::~int_range): Make final override. --- gcc/value-range.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/value-range.h b/gcc/value-range.h index e7f61950a24..b7c83982385 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -95,6 +95,7 @@ public: virtual void set_zero (tree type) = 0; virtual void set_nonnegative (tree type) = 0; virtual bool fits_p (const vrange &r) const = 0; + virtual ~vrange () { } bool varying_p () const; bool undefined_p () const; @@ -382,7 +383,7 @@ public: int_range (tree type); int_range (const int_range &); int_range (const irange &); - virtual ~int_range (); + ~int_range () final override; int_range& operator= (const int_range &); protected: int_range (tree, tree, value_range_kind = VR_RANGE); -- 2.44.0