diff options
author | Richard Biener <rguenther@suse.de> | 2016-05-18 08:10:20 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-05-18 08:10:20 +0000 |
commit | c9326aef96dd6628bf9b170a95e9a0ecadcb9263 (patch) | |
tree | 82555e098956bfa282574d195d0b116ab38901cd /gcc | |
parent | 628d13d9995e6b1d2c0847106ebf2645b3884875 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr71168.c | 20 | ||||
-rw-r--r-- | gcc/tree-loop-distribution.c | 2 |
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)) |