mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-21 19:41:29 +08:00
expr.c (expand_expr <COND_EXPR>): Handle the void type semantics of COND_EXPR when expanding the "A op 0 ? FOO ...
* expr.c (expand_expr <COND_EXPR>): Handle the void type semantics of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations. From-SVN: r72172
This commit is contained in:
parent
37bf20eeb0
commit
c37b68d42a
@ -1,3 +1,8 @@
|
||||
2003-10-06 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* expr.c (expand_expr <COND_EXPR>): Handle the void type semantics
|
||||
of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations.
|
||||
|
||||
2003-10-06 Roger Sayle <roger@eyesopen.com>
|
||||
Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
|
16
gcc/expr.c
16
gcc/expr.c
@ -8910,8 +8910,12 @@ expand_expr (tree exp, rtx target, enum machine_mode tmode,
|
||||
jumpif (TREE_OPERAND (exp, 0), op0);
|
||||
|
||||
start_cleanup_deferral ();
|
||||
store_expr (TREE_OPERAND (exp, 2), temp,
|
||||
modifier == EXPAND_STACK_PARM ? 2 : 0);
|
||||
if (TREE_TYPE (TREE_OPERAND (exp, 2)) != void_type_node)
|
||||
store_expr (TREE_OPERAND (exp, 2), temp,
|
||||
modifier == EXPAND_STACK_PARM ? 2 : 0);
|
||||
else
|
||||
expand_expr (TREE_OPERAND (exp, 2),
|
||||
ignore ? const0_rtx : NULL_RTX, VOIDmode, 0);
|
||||
op1 = op0;
|
||||
}
|
||||
else if (temp
|
||||
@ -8931,8 +8935,12 @@ expand_expr (tree exp, rtx target, enum machine_mode tmode,
|
||||
jumpifnot (TREE_OPERAND (exp, 0), op0);
|
||||
|
||||
start_cleanup_deferral ();
|
||||
store_expr (TREE_OPERAND (exp, 1), temp,
|
||||
modifier == EXPAND_STACK_PARM ? 2 : 0);
|
||||
if (TREE_TYPE (TREE_OPERAND (exp, 1)) != void_type_node)
|
||||
store_expr (TREE_OPERAND (exp, 1), temp,
|
||||
modifier == EXPAND_STACK_PARM ? 2 : 0);
|
||||
else
|
||||
expand_expr (TREE_OPERAND (exp, 1),
|
||||
ignore ? const0_rtx : NULL_RTX, VOIDmode, 0);
|
||||
op1 = op0;
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user