re PR tree-optimization/47890 (internal compiler error: in vect_get_vec_def_for_stmt_...
authorRichard Guenther <rguenther@suse.de>
Tue, 1 Mar 2011 13:18:25 +0000 (13:18 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 1 Mar 2011 13:18:25 +0000 (13:18 +0000)
2011-03-01  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/47890
* tree-vect-loop.c (get_initial_def_for_induction): Set
related stmt properly.

* gcc.dg/torture/pr47890.c: New testcase.

From-SVN: r170593

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr47890.c [new file with mode: 0644]
gcc/tree-vect-loop.c

index 79487c18b0c16b02cb53627b123f461052465ff4..c64de9d4f951546aeabef825b4ccd9c8ef11ebdb 100644 (file)
@@ -1,3 +1,9 @@
+2011-03-01  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/47890
+       * tree-vect-loop.c (get_initial_def_for_induction): Set
+       related stmt properly.
+
 2011-03-01  Richard Guenther  <rguenther@suse.de>
 
        PR lto/47924
index d5e79f82f2e887fb17ac290c697690cfd2c5af39..94bbe7ee6ec2f259d8afe6c9feb9ee7a41e73179 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-01  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/47890
+       * gcc.dg/torture/pr47890.c: New testcase.
+
 2011-03-01  Richard Guenther  <rguenther@suse.de>
 
        PR lto/47924
diff --git a/gcc/testsuite/gcc.dg/torture/pr47890.c b/gcc/testsuite/gcc.dg/torture/pr47890.c
new file mode 100644 (file)
index 0000000..83cb5e6
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+
+void f(char *s)
+{
+  signed short i;
+
+  for (i = 0; i < 19; i = i + 1)
+    s[i] = i;
+}
index d474688ebecba312228d4c2ac29e4f4201cbf68a..7692eb8bc96a419375f5cfafdc3604e916e6a8de 100644 (file)
@@ -2886,6 +2886,10 @@ get_initial_def_for_induction (gimple iv_phi)
       gimple_assign_set_lhs (new_stmt, induc_def);
       si = gsi_start_bb (bb);
       gsi_insert_before (&si, new_stmt, GSI_SAME_STMT);
+      set_vinfo_for_stmt (new_stmt,
+                         new_stmt_vec_info (new_stmt, loop_vinfo, NULL));
+      STMT_VINFO_RELATED_STMT (vinfo_for_stmt (new_stmt))
+       = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (induction_phi));
     }
 
   return induc_def;