From: Aldy Hernandez Date: Wed, 1 Jun 2022 15:41:10 +0000 (+0200) Subject: Remove unneeded vrange_traits. X-Git-Tag: basepoints/gcc-14~6230 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f4fa81ba63299030d068327f3d90920de8c54d1c;p=thirdparty%2Fgcc.git Remove unneeded vrange_traits. The traits struct is no longer needed. Tested on x86-64 Linux. gcc/ChangeLog: * value-range.h (struct vrange_traits): Remove. (is_a): Rewrite without vrange_traits. (as_a): Same. --- diff --git a/gcc/value-range.h b/gcc/value-range.h index 61e6a1887d5..26e41ed2982 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -245,24 +245,12 @@ public: virtual void dump (FILE *) const override; }; -// Traits to implement vrange is_a<> and as_a<>. - -template -struct vrange_traits -{ - // Default to something unusable. - typedef void range_type; -}; - -template<> -struct vrange_traits -{ - typedef irange range_type; -}; +// is_a<> and as_a<> implementation for vrange. +// Anything we haven't specialized is a hard fail. template inline bool -is_a (vrange &v) +is_a (vrange &) { gcc_unreachable (); return false; @@ -281,18 +269,16 @@ template inline T & as_a (vrange &v) { - typedef typename vrange_traits::range_type range_type; - gcc_checking_assert (is_a (v)); - return static_cast (v); + gcc_checking_assert (is_a (v)); + return static_cast (v); } template inline const T & as_a (const vrange &v) { - typedef typename vrange_traits::range_type range_type; - gcc_checking_assert (is_a (v)); - return static_cast (v); + gcc_checking_assert (is_a (v)); + return static_cast (v); } // Specializations for the different range types.