aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-03-01 13:18:25 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-03-01 13:18:25 +0000
commitf2ca11ca979bebcee53d00eb0ac712289d6e3e3e (patch)
tree697d1e535aed98c5072e627d3220ef8acb308f1e
parent7a00d9eaf66d34d3e26938e890a4fb880df531f4 (diff)
downloadgcc-f2ca11ca979bebcee53d00eb0ac712289d6e3e3e.zip
gcc-f2ca11ca979bebcee53d00eb0ac712289d6e3e3e.tar.gz
gcc-f2ca11ca979bebcee53d00eb0ac712289d6e3e3e.tar.bz2
re PR tree-optimization/47890 (internal compiler error: in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1186)
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr47890.c9
-rw-r--r--gcc/tree-vect-loop.c4
4 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 79487c1..c64de9d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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
* lto-streamer.c (lto_record_common_node): Also register
the canonical type.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d5e79f8..94bbe7e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
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
* gcc.dg/lto/pr47924_0.c: New testcase.
diff --git a/gcc/testsuite/gcc.dg/torture/pr47890.c b/gcc/testsuite/gcc.dg/torture/pr47890.c
new file mode 100644
index 0000000..83cb5e6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr47890.c
@@ -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;
+}
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index d474688..7692eb8 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -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;