]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/50754 (ICE in expand_debug_expr, at cfgexpand.c:3341)
authorJakub Jelinek <jakub@redhat.com>
Wed, 19 Oct 2011 19:31:14 +0000 (21:31 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 19 Oct 2011 19:31:14 +0000 (21:31 +0200)
PR middle-end/50754
* cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
VEC_PERM_EXPR.

From-SVN: r180201

gcc/ChangeLog
gcc/cfgexpand.c

index 1b69b069f7a8a8631bd4520c54f5facf4c1687fe..24cc639258f3329e4f2e7ad4b4ca088b9ac6dbf1 100644 (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.
index 045c2e28813f035f88930d5e77277964eaee8710..6fb9ee0c5a183af3ce0923f23842e365d9c4e3e3 100644 (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;