Commit 0328ae4d by Richard Guenther Committed by Richard Biener

expr.c (expand_expr_real_1): Avoid calling do_store_flag with mismatched comparison modes.

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

	* expr.c (expand_expr_real_1): Avoid calling do_store_flag
	with mismatched comparison modes.

	* gcc.c-torture/compile/20090518-1.c: New testcase.

From-SVN: r147731
parent a7994a57
2009-05-20 Richard Guenther <rguenther@suse.de>
* expr.c (expand_expr_real_1): Avoid calling do_store_flag
with mismatched comparison modes.
2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.md (*arm_iorsi3): Refactored for only ARM. * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
......
...@@ -9042,7 +9042,12 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, ...@@ -9042,7 +9042,12 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
case LTGT_EXPR: case LTGT_EXPR:
temp = do_store_flag (exp, temp = do_store_flag (exp,
modifier != EXPAND_STACK_PARM ? target : NULL_RTX, modifier != EXPAND_STACK_PARM ? target : NULL_RTX,
tmode != VOIDmode ? tmode : mode); (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);
if (temp != 0) if (temp != 0)
return temp; return temp;
......
2009-05-20 Richard Guenther <rguenther@suse.de>
* gcc.c-torture/compile/20090518-1.c: New testcase.
2009-05-19 Zdenek Dvorak <ook@ucw.cz> 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/40087 PR tree-optimization/40087
......
float
foo(int i)
{
int j = i == 42;
return *(float *)&j;
}
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