aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-05-18 08:10:20 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-05-18 08:10:20 +0000
commitc9326aef96dd6628bf9b170a95e9a0ecadcb9263 (patch)
tree82555e098956bfa282574d195d0b116ab38901cd /gcc
parent628d13d9995e6b1d2c0847106ebf2645b3884875 (diff)
downloadgcc-c9326aef96dd6628bf9b170a95e9a0ecadcb9263.zip
gcc-c9326aef96dd6628bf9b170a95e9a0ecadcb9263.tar.gz
gcc-c9326aef96dd6628bf9b170a95e9a0ecadcb9263.tar.bz2
re PR tree-optimization/71168 (ICE in find_uses_to_rename_use (tree-ssa-loop-manip.c:379))
2016-05-18 Richard Biener <rguenther@suse.de> PR tree-optimization/71168 * tree-loop-distribution.c (distribute_loop): Move *destroy_p initialization earlier. * gcc.dg/torture/pr71168.c: New testcase. From-SVN: r236361
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr71168.c20
-rw-r--r--gcc/tree-loop-distribution.c2
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e71ce6d..ba2ab08 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/71168
+ * tree-loop-distribution.c (distribute_loop): Move *destroy_p
+ initialization earlier.
+
2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/aarch64-simd.md
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 87fd63a..88c6164 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/71168
+ * gcc.dg/torture/pr71168.c: New testcase.
+
2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/63586
diff --git a/gcc/testsuite/gcc.dg/torture/pr71168.c b/gcc/testsuite/gcc.dg/torture/pr71168.c
new file mode 100644
index 0000000..fdf4fff
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr71168.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+
+int a, b, c;
+long *d;
+void fn1()
+{
+ for (; 0 < a;)
+ a++;
+}
+void fn3()
+{
+ for (; c; c++)
+ d[c] = 0;
+}
+void fn2()
+{
+ if (b)
+ fn3();
+ fn1();
+}
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index a801348..dbc8e3c 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1413,6 +1413,7 @@ distribute_loop (struct loop *loop, vec<gimple *> stmts,
graph *pg = NULL;
int num_sccs = 1;
+ *destroy_p = false;
*nb_calls = 0;
auto_vec<loop_p, 3> loop_nest;
if (!find_loop_nest (loop, &loop_nest))
@@ -1647,7 +1648,6 @@ distribute_loop (struct loop *loop, vec<gimple *> stmts,
if (dump_file && (dump_flags & TDF_DETAILS))
dump_rdg_partitions (dump_file, partitions);
- *destroy_p = false;
FOR_EACH_VEC_ELT (partitions, i, partition)
{
if (partition_builtin_p (partition))