diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-10-19 21:31:14 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-10-19 21:31:14 +0200 |
commit | 3f3af9dfcc78d1db2590023a070eb91a9d1d1772 (patch) | |
tree | dcf611cee68ac30f7e7bf438d0c0246927912335 /gcc/cfgexpand.c | |
parent | da004daccc0eb6d1e4b21afbdce5fa97a0fad5ee (diff) | |
download | gcc-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.c | 5 |
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; |