Commit f0cfd3a8 by Richard Guenther Committed by Richard Biener

re PR middle-end/40248 (FAIL: gcc.c-torture/compile/20090518-1.c at -O1 and above)

2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40248
	Revert
	* expr.c (expand_expr_real_1): Avoid calling do_store_flag
	with mismatched comparison modes.

	* expr.c (expand_expr_real_1): Expand the operand of a
	VIEW_CONVERT_EXPR in its natural mode.

From-SVN: r147874
parent 7980bfb8
2009-05-26 Richard Guenther <rguenther@suse.de>
PR middle-end/40248
Revert
* expr.c (expand_expr_real_1): Avoid calling do_store_flag
with mismatched comparison modes.
* expr.c (expand_expr_real_1): Expand the operand of a
VIEW_CONVERT_EXPR in its natural mode.
2009-05-26 Ian Lance Taylor <iant@google.com>
* Makefile.in (COMPILER, COMPILER_FLAGS): Define.
......
......@@ -8248,7 +8248,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
}
if (!op0)
op0 = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, mode, modifier);
op0 = expand_expr (TREE_OPERAND (exp, 0),
NULL_RTX, VOIDmode, modifier);
/* If the input and output modes are both the same, we are done. */
if (mode == GET_MODE (op0))
......@@ -9042,12 +9043,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
case LTGT_EXPR:
temp = do_store_flag (exp,
modifier != EXPAND_STACK_PARM ? target : NULL_RTX,
(tmode != VOIDmode
/* do_store_flag does not handle target modes
of a different class than the comparison mode.
Avoid ICEing in convert_move. */
&& GET_MODE_CLASS (tmode) == GET_MODE_CLASS (mode))
? tmode : mode);
tmode != VOIDmode ? tmode : mode);
if (temp != 0)
return temp;
......
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