]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Make all default vrange setters set VARYING.
authorAldy Hernandez <aldyh@redhat.com>
Fri, 26 Aug 2022 14:58:58 +0000 (16:58 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Fri, 26 Aug 2022 16:12:37 +0000 (18:12 +0200)
frange is using some of the default vrange setters, some of which are
leaving the range in an undefined state.  We hadn't noticed this
because neither frange nor unsupported_range, both which use some of
the default implementation, weren't being used much.

We can never go wrong with setting VARYING ;-).

gcc/ChangeLog:

* value-range.cc (vrange::set): Set varying.
(vrange::set_nonzero): Same.
(vrange::set_zero): Same.
(vrange::set_nonnegative): Same.

gcc/value-range.cc

index d056f7356e1a370e0d5be3acde70ae70daf51fca..edd10bf57947a7ca04938cb682a6d60e56f55ab3 100644 (file)
@@ -94,8 +94,9 @@ vrange::singleton_p (tree *) const
 }
 
 void
-vrange::set (tree, tree, value_range_kind)
+vrange::set (tree min, tree, value_range_kind)
 {
+  set_varying (TREE_TYPE (min));
 }
 
 tree
@@ -168,18 +169,21 @@ vrange::nonzero_p () const
 }
 
 void
-vrange::set_nonzero (tree)
+vrange::set_nonzero (tree type)
 {
+  set_varying (type);
 }
 
 void
-vrange::set_zero (tree)
+vrange::set_zero (tree type)
 {
+  set_varying (type);
 }
 
 void
-vrange::set_nonnegative (tree)
+vrange::set_nonnegative (tree type)
 {
+  set_varying (type);
 }
 
 bool