diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2022-09-27 08:00:40 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2022-09-27 10:43:11 +0200 |
commit | 1db05e1a1c1ee3d8a95826d477173fb7c557c002 (patch) | |
tree | 6557da06fc1db12375c120860b0510b86a5e690a /gcc | |
parent | 303976a6076f2839354702fd2caa049fa7cbbdc2 (diff) | |
download | gcc-1db05e1a1c1ee3d8a95826d477173fb7c557c002.zip gcc-1db05e1a1c1ee3d8a95826d477173fb7c557c002.tar.gz gcc-1db05e1a1c1ee3d8a95826d477173fb7c557c002.tar.bz2 |
Add an irange setter for wide_ints.
Just the same way as we have real_value setters for franges, we should
have a wide_int version for irange. This matches the irange
constructor for wide_ints, and paves the way for the eventual
conversion of irange to wide ints.
gcc/ChangeLog:
* value-range.h (irange::set): New version taking wide_int_ref.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/value-range.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/value-range.h b/gcc/value-range.h index 413e54b..556e31a 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -117,6 +117,8 @@ class GTY((user)) irange : public vrange public: // In-place setters. virtual void set (tree, tree, value_range_kind = VR_RANGE) override; + void set (tree type, const wide_int_ref &, const wide_int_ref &, + value_range_kind = VR_RANGE); virtual void set_nonzero (tree type) override; virtual void set_zero (tree type) override; virtual void set_nonnegative (tree type) override; @@ -687,6 +689,13 @@ irange::varying_compatible_p () const return true; } +inline void +irange::set (tree type, const wide_int_ref &min, const wide_int_ref &max, + value_range_kind kind) +{ + set (wide_int_to_tree (type, min), wide_int_to_tree (type, max), kind); +} + inline bool vrange::varying_p () const { |