From cbcafd35b7f15306afdf946eaca5be8586edf6da Mon Sep 17 00:00:00 2001 From: Olivier Hainque Date: Mon, 14 Apr 2003 23:09:44 +0200 Subject: [PATCH] * fold-const.c (fold): Reorder tests for conditional expressions. From-SVN: r65590 --- gcc/ChangeLog | 2 ++ gcc/fold-const.c | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ffd927494a7..d5b5ca7a664a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ 2003-04-14 Olivier Hainque + * fold-const.c (fold): Reorder tests for conditional expressions. + * expr.c (highest_pow2_factor): Return unsigned. * expr.h (offset_address): Likewise. * emit-rtl.c (offset_address): POW2 argument now unsigned. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 95812a2e13c3..065a4fc527d3 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) { -- 2.47.2