From: Jakub Jelinek Date: Wed, 19 Oct 2011 19:31:14 +0000 (+0200) Subject: re PR middle-end/50754 (ICE in expand_debug_expr, at cfgexpand.c:3341) X-Git-Tag: releases/gcc-4.7.0~2972 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3f3af9dfcc78d1db2590023a070eb91a9d1d1772;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1b69b069f7a8..24cc639258f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-10-19 Jakub Jelinek + + PR middle-end/50754 + * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore + VEC_PERM_EXPR. + 2011-10-19 Bernd Schmidt * regrename.h: New file. diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 045c2e28813f..6fb9ee0c5a18 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -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;