From b95f91ba177ab2595dee37b6f64461cfe1a95f70 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 18 Jul 2016 14:57:25 +0200 Subject: [PATCH] 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 Backported from mainline 2016-07-12 Martin Liska * ira-build.c (mark_loops_for_removal): Properly iterate loops. From-SVN: r238429 --- gcc/ChangeLog | 9 +++++++++ gcc/ira-build.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 683efeb1a2ef..d87ee9b2fad0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2016-07-18 Martin Liska + + Backported from mainline + 2016-07-12 Martin Liska + + PR rtl-optimization/71634 + * ira-build.c (mark_loops_for_removal): Properly iterate + loops. + 2016-07-08 Martin Liska Backported from mainline diff --git a/gcc/ira-build.c b/gcc/ira-build.c index 643bbe9a08be..b13a87c58728 100644 --- a/gcc/ira-build.c +++ b/gcc/ira-build.c @@ -2277,7 +2277,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) -- 2.47.2