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.
}
void
-vrange::set (tree, tree, value_range_kind)
+vrange::set (tree min, tree, value_range_kind)
{
+ set_varying (TREE_TYPE (min));
}
tree
}
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