From: Martin Liska Date: Mon, 18 Jul 2016 12:57:25 +0000 (+0200) Subject: re PR rtl-optimization/71634 (Invalid write with in mark_loops_for_removal (ira-build... X-Git-Tag: releases/gcc-4.9.4~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b95f91ba177ab2595dee37b6f64461cfe1a95f70;p=thirdparty%2Fgcc.git 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 --- 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)