fold-const.c (fold_binary_op_with_conditional_arg): Take decomposed arguments code...
authorKazu Hirata <kazu@cs.umass.edu>
Sun, 6 Mar 2005 17:23:03 +0000 (17:23 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Sun, 6 Mar 2005 17:23:03 +0000 (17:23 +0000)
* fold-const.c (fold_binary_op_with_conditional_arg): Take
decomposed arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.

From-SVN: r95978

gcc/ChangeLog
gcc/fold-const.c

index 2a1da3c9af591013300239688e6034041596a9ca..c57013152070e913768545048ff0c4a41aae62d2 100644 (file)
        code, type, op0, and op1 instead of t.
        (fold_binary): Update a call to fold_range_test.
 
+       * fold-const.c (fold_binary_op_with_conditional_arg): Take
+       decomposed arguments code, type, op0, and op1 instead of t.
+       (fold_binary): Update a call to fold_range_test.
+
 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
 
        * fold-const.c (fold_binary): Avoid directly using the original
index a82dbe381f7a275ad5c92e7ce311d62c57ea41bf..d7d23582599a0bf7cd0216c6b92d11a52195e711 100644 (file)
@@ -121,7 +121,8 @@ static tree optimize_minmax_comparison (enum tree_code, tree, tree, tree);
 static tree extract_muldiv (tree, tree, enum tree_code, tree);
 static tree extract_muldiv_1 (tree, tree, enum tree_code, tree);
 static int multiple_of_p (tree, tree, tree);
-static tree fold_binary_op_with_conditional_arg (tree, enum tree_code, 
+static tree fold_binary_op_with_conditional_arg (enum tree_code, tree,
+                                                tree, tree,
                                                 tree, tree, int);
 static bool fold_real_zero_addition_p (tree, tree, int);
 static tree fold_mathfn_compare (enum built_in_function, enum tree_code,
@@ -5453,14 +5454,12 @@ extract_array_ref (tree expr, tree *base, tree *offset)
    possible.  */
 
 static tree
-fold_binary_op_with_conditional_arg (tree t, enum tree_code code, tree cond,
-                                    tree arg, int cond_first_p)
+fold_binary_op_with_conditional_arg (enum tree_code code,
+                                    tree type, tree op0, tree op1,
+                                    tree cond, tree arg, int cond_first_p)
 {
-  const tree type = TREE_TYPE (t);
-  tree cond_type = cond_first_p ? TREE_TYPE (TREE_OPERAND (t, 0)) 
-                               : TREE_TYPE (TREE_OPERAND (t, 1));
-  tree arg_type = cond_first_p ? TREE_TYPE (TREE_OPERAND (t, 1)) 
-                              : TREE_TYPE (TREE_OPERAND (t, 0));
+  tree cond_type = cond_first_p ? TREE_TYPE (op0) : TREE_TYPE (op1);
+  tree arg_type = cond_first_p ? TREE_TYPE (op0) : TREE_TYPE (op1);
   tree test, true_value, false_value;
   tree lhs = NULL_TREE;
   tree rhs = NULL_TREE;
@@ -7159,7 +7158,8 @@ fold_binary (tree expr)
 
       if (TREE_CODE (arg0) == COND_EXPR || COMPARISON_CLASS_P (arg0))
        {
-         tem = fold_binary_op_with_conditional_arg (t, code, arg0, arg1, 
+         tem = fold_binary_op_with_conditional_arg (code, type, op0, op1,
+                                                    arg0, arg1, 
                                                     /*cond_first_p=*/1);
          if (tem != NULL_TREE)
            return tem;
@@ -7167,7 +7167,8 @@ fold_binary (tree expr)
 
       if (TREE_CODE (arg1) == COND_EXPR || COMPARISON_CLASS_P (arg1))
        {
-         tem = fold_binary_op_with_conditional_arg (t, code, arg1, arg0, 
+         tem = fold_binary_op_with_conditional_arg (code, type, op0, op1,
+                                                    arg1, arg0, 
                                                     /*cond_first_p=*/0);
          if (tem != NULL_TREE)
            return tem;