Commit 7f423031 by Richard Kenner

(make_range, comparison cases): When making range for unsigned to

merge in, use full range.

From-SVN: r13027
parent 70e7fabe
......@@ -2757,15 +2757,20 @@ make_range (exp, pin_p, plow, phigh)
exp = arg0;
/* If this is an unsigned comparison, we also know that EXP
is greater than or equal to zero. We base the range tests
we make on that fact, so we record it here so we can parse
existing range tests. */
if (TREE_UNSIGNED (type))
/* If this is an unsigned comparison, we also know that EXP is
greater than or equal to zero and less than the maximum value of
the unsigned type. We base the range tests we make on that fact,
so we record it here so we can parse existing range tests. */
if (TREE_UNSIGNED (type) && (low == 0 || high == 0))
{
if (! merge_ranges (&n_in_p, &n_low, &n_high, in_p, low, high,
1, convert (type, integer_zero_node),
NULL_TREE))
const_binop (MINUS_EXPR,
convert (type,
integer_zero_node),
convert (type,
integer_one_node),
0)))
break;
in_p = n_in_p, low = n_low, high = n_high;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment