tree-vrp.c (extract_range_from_binary_expr): Clean up uses of vr0.type.
authorKazu Hirata <kazu@codesourcery.com>
Thu, 22 Dec 2005 01:16:57 +0000 (01:16 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 22 Dec 2005 01:16:57 +0000 (01:16 +0000)
* tree-vrp.c (extract_range_from_binary_expr): Clean up uses
of vr0.type.

From-SVN: r108935

gcc/ChangeLog
gcc/tree-vrp.c

index f93e4be9d7043d19b9194f50a0c0aaa426c46821..cdc10e038b633cc565ae8ffcfdc52e8d397b58c4 100644 (file)
@@ -1,3 +1,8 @@
+2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
+       of vr0.type.
+
 2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>
 
        PR middle-end/24998
index a9609fa61573cd4cd74564156c4cacf611269915..b9503865fcf2a25b5f816267d66a6192374195a6 100644 (file)
@@ -1167,6 +1167,7 @@ static void
 extract_range_from_binary_expr (value_range_t *vr, tree expr)
 {
   enum tree_code code = TREE_CODE (expr);
+  enum value_range_type type;
   tree op0, op1, min, max;
   int cmp;
   value_range_t vr0 = { VR_UNDEFINED, NULL_TREE, NULL_TREE, NULL };
@@ -1220,6 +1221,9 @@ extract_range_from_binary_expr (value_range_t *vr, tree expr)
       return;
     }
 
+  /* The type of the resulting value range defaults to VR0.TYPE.  */
+  type = vr0.type;
+
   /* Refuse to operate on VARYING ranges, ranges of different kinds
      and symbolic ranges.  As an exception, we allow BIT_AND_EXPR
      because we may be able to derive a useful range even if one of
@@ -1425,7 +1429,7 @@ extract_range_from_binary_expr (value_range_t *vr, tree expr)
          && tree_expr_nonnegative_p (vr1.max)
          && TREE_CODE (vr1.max) == INTEGER_CST)
        {
-         vr0.type = VR_RANGE;
+         type = VR_RANGE;
          min = fold_convert (TREE_TYPE (expr), integer_zero_node);
          max = vr1.max;
        }
@@ -1455,7 +1459,7 @@ extract_range_from_binary_expr (value_range_t *vr, tree expr)
       set_value_range_to_varying (vr);
     }
   else
-    set_value_range (vr, vr0.type, min, max, NULL);
+    set_value_range (vr, type, min, max, NULL);
 }