diff options
author | Olivier Hainque <hainque@act-europe.fr> | 2003-04-14 23:09:44 +0200 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2003-04-14 17:09:44 -0400 |
commit | cbcafd35b7f15306afdf946eaca5be8586edf6da (patch) | |
tree | 7bade654632c5b8dc4f5976a80f8e8fdb8403de1 /gcc/fold-const.c | |
parent | 9ceca3020a62d208756ff281a189ce9f955fbc80 (diff) | |
download | gcc-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.c | 16 |
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) { |