re PR middle-end/50754 (ICE in expand_debug_expr, at cfgexpand.c:3341)

PR middle-end/50754
	* cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
	VEC_PERM_EXPR.

From-SVN: r180201
This commit is contained in:
Jakub Jelinek 2011-10-19 21:31:14 +02:00 committed by Jakub Jelinek
parent da004daccc
commit 3f3af9dfcc
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2011-10-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/50754
* cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
VEC_PERM_EXPR.
2011-10-19 Bernd Schmidt <bernds@codesourcery.com>
* regrename.h: New file.

View file

@ -3267,6 +3267,7 @@ expand_debug_expr (tree exp)
case VEC_WIDEN_MULT_LO_EXPR:
case VEC_WIDEN_LSHIFT_HI_EXPR:
case VEC_WIDEN_LSHIFT_LO_EXPR:
case VEC_PERM_EXPR:
return NULL;
/* Misc codes. */
@ -3321,6 +3322,7 @@ expand_debug_expr (tree exp)
return NULL;
case WIDEN_SUM_EXPR:
case WIDEN_LSHIFT_EXPR:
if (SCALAR_INT_MODE_P (GET_MODE (op0))
&& SCALAR_INT_MODE_P (mode))
{
@ -3329,7 +3331,8 @@ expand_debug_expr (tree exp)
0)))
? ZERO_EXTEND : SIGN_EXTEND, mode, op0,
inner_mode);
return simplify_gen_binary (PLUS, mode, op0, op1);
return simplify_gen_binary (TREE_CODE (exp) == WIDEN_LSHIFT_EXPR
? ASHIFT : PLUS, mode, op0, op1);
}
return NULL;