aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@act-europe.fr>2003-04-14 23:09:44 +0200
committerRichard Kenner <kenner@gcc.gnu.org>2003-04-14 17:09:44 -0400
commitcbcafd35b7f15306afdf946eaca5be8586edf6da (patch)
tree7bade654632c5b8dc4f5976a80f8e8fdb8403de1 /gcc/fold-const.c
parent9ceca3020a62d208756ff281a189ce9f955fbc80 (diff)
downloadgcc-cbcafd35b7f15306afdf946eaca5be8586edf6da.zip
gcc-cbcafd35b7f15306afdf946eaca5be8586edf6da.tar.gz
gcc-cbcafd35b7f15306afdf946eaca5be8586edf6da.tar.bz2
* fold-const.c (fold): Reorder tests for conditional expressions.
From-SVN: r65590
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 95812a2..065a4fc 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -5063,6 +5063,14 @@ fold (expr)
fold (build1 (code, type, integer_one_node)),
fold (build1 (code, type, integer_zero_node))));
}
+ else if (TREE_CODE_CLASS (code) == '<'
+ && TREE_CODE (arg0) == COMPOUND_EXPR)
+ return build (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0),
+ fold (build (code, type, TREE_OPERAND (arg0, 1), arg1)));
+ else if (TREE_CODE_CLASS (code) == '<'
+ && TREE_CODE (arg1) == COMPOUND_EXPR)
+ return build (COMPOUND_EXPR, type, TREE_OPERAND (arg1, 0),
+ fold (build (code, type, arg0, TREE_OPERAND (arg1, 1))));
else if (TREE_CODE_CLASS (code) == '2'
|| TREE_CODE_CLASS (code) == '<')
{
@@ -5098,14 +5106,6 @@ fold (expr)
fold_binary_op_with_conditional_arg (code, type, arg0, arg1,
/*cond_first_p=*/1);
}
- else if (TREE_CODE_CLASS (code) == '<'
- && TREE_CODE (arg0) == COMPOUND_EXPR)
- return build (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0),
- fold (build (code, type, TREE_OPERAND (arg0, 1), arg1)));
- else if (TREE_CODE_CLASS (code) == '<'
- && TREE_CODE (arg1) == COMPOUND_EXPR)
- return build (COMPOUND_EXPR, type, TREE_OPERAND (arg1, 0),
- fold (build (code, type, arg0, TREE_OPERAND (arg1, 1))));
switch (code)
{