diff options
author | Martin Liska <mliska@suse.cz> | 2016-07-12 16:54:52 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2016-07-12 14:54:52 +0000 |
commit | 5548d9cd190fae2112e410b8ff91b09ec03f19e9 (patch) | |
tree | 7000c87fdc09a7464877f850d109d13ff2511dc6 /gcc | |
parent | 7cbadfdced9aa8208b4450538402f5f2206b8423 (diff) | |
download | gcc-5548d9cd190fae2112e410b8ff91b09ec03f19e9.zip gcc-5548d9cd190fae2112e410b8ff91b09ec03f19e9.tar.gz gcc-5548d9cd190fae2112e410b8ff91b09ec03f19e9.tar.bz2 |
re PR rtl-optimization/71634 (Invalid write with in mark_loops_for_removal (ira-build.c:2256) with --param ira-max-loops-num=0)
Fix PR rtl-optimization/71634
* ira-build.c (mark_loops_for_removal): Properly iterate
loops.
From-SVN: r238247
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ira-build.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8776f74..509e855 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-07-12 Martin Liska <mliska@suse.cz> + + * ira-build.c (mark_loops_for_removal): Properly iterate + loops. + 2016-07-12 Steven Bosscher <steven@gcc.gnu.org> Richard Biener <rguenther@suse.de> diff --git a/gcc/ira-build.c b/gcc/ira-build.c index 37aa185..caa770e 100644 --- a/gcc/ira-build.c +++ b/gcc/ira-build.c @@ -2251,7 +2251,7 @@ mark_loops_for_removal (void) ); } qsort (sorted_loops, n, sizeof (ira_loop_tree_node_t), loop_compare_func); - for (i = 0; n - i + 1 > IRA_MAX_LOOPS_NUM; i++) + for (i = 0; i < n - IRA_MAX_LOOPS_NUM; i++) { sorted_loops[i]->to_remove_p = true; if (internal_flag_ira_verbose > 1 && ira_dump_file != NULL) |