diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-12-07 17:54:59 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-12-07 17:54:59 -0500 |
commit | d4fcc6365e9631f82670dcbb5ab5d425376d7def (patch) | |
tree | e3142a74fd79fc04dced33317174f30ac3d15822 /gcc | |
parent | bd5b5c8584a238a7a03457ffdc4a65831e299bf1 (diff) | |
download | gcc-d4fcc6365e9631f82670dcbb5ab5d425376d7def.zip gcc-d4fcc6365e9631f82670dcbb5ab5d425376d7def.tar.gz gcc-d4fcc6365e9631f82670dcbb5ab5d425376d7def.tar.bz2 |
(merge_ranges): In (+,-) case, if lower bounds are the same the result
is always false.
From-SVN: r13236
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fold-const.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 2147e2e..cc27b58 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2976,7 +2976,7 @@ merge_ranges (pin_p, plow, phigh, in0_p, low0, high0, in1_p, low1, high1) /* If they don't overlap, the result is the first range. If the second range is a subset of the first, we can't describe this as a single range unless both ranges end at the same place. If both - ranges also start in the same place, then the result is false. + ranges start in the same place, then the result is false. Otherwise, we go from the start of the first range to just before the start of the second. */ if (no_overlap) @@ -2985,9 +2985,8 @@ merge_ranges (pin_p, plow, phigh, in0_p, low0, high0, in1_p, low1, high1) && integer_zerop (range_binop (EQ_EXPR, integer_type_node, high0, 1, high1, 0))) return 0; - else if (subset - && integer_onep (range_binop (EQ_EXPR, integer_type_node, - low0, 0, low1, 0))) + else if (integer_onep (range_binop (EQ_EXPR, integer_type_node, + low0, 0, low1, 0))) in_p = 0, low = high = 0; else { |