aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-10-19 21:31:14 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-10-19 21:31:14 +0200
commit3f3af9dfcc78d1db2590023a070eb91a9d1d1772 (patch)
treedcf611cee68ac30f7e7bf438d0c0246927912335 /gcc/cfgexpand.c
parentda004daccc0eb6d1e4b21afbdce5fa97a0fad5ee (diff)
downloadgcc-3f3af9dfcc78d1db2590023a070eb91a9d1d1772.zip
gcc-3f3af9dfcc78d1db2590023a070eb91a9d1d1772.tar.gz
gcc-3f3af9dfcc78d1db2590023a070eb91a9d1d1772.tar.bz2
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
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r--gcc/cfgexpand.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 045c2e2..6fb9ee0 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;