diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 10 | ||||
| -rw-r--r-- | gcc/expr.c | 10 | 
2 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0c0647a..10dd634 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +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;  | 
