Commit c37b68d4 by Roger Sayle Committed by Roger Sayle

expr.c (expand_expr <COND_EXPR>): Handle the void type semantics of COND_EXPR…

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
parent 37bf20ee
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>
* optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment