[Bug bootstrap/11593] [3.4 regression] infinite loop in find_rgns compiling c-parse.c
rakdver at atrey dot karlin dot mff dot cuni dot cz
gcc-bugzilla@gcc.gnu.org
Sat Jul 19 21:35:00 GMT 2003
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11593
------- Additional Comments From rakdver at atrey dot karlin dot mff dot cuni dot cz 2003-07-19 21:35 -------
Subject: Re: [3.4 regression] infinite loop in find_rgns compiling c-parse.c
Hello,
> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11593
>
>
> pinskia at physics dot uc dot edu changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> Status|UNCONFIRMED |NEW
> Ever Confirmed| |1
> Priority|P3 |P1
> Last reconfirmed|0000-00-00 00:00:00 |2003-07-19 20:28:15
> date| |
>
>
> ------- Additional Comments From pinskia at physics dot uc dot edu 2003-07-19 20:28 -------
> It also introduced other regressions: <http://gcc.gnu.org/ml/gcc-patches/2003-07/
> msg01957.html>.
> Here is the original patch and discussion: <http://gcc.gnu.org/ml/gcc-patches/2003-07/
> msg01574.html>.
>
> I say we start the 48 hours now to revert this if there is no hope of
> getting this fixed soon.
the find_rgns function incorrectly assumes that the first block of
function has number zero. Provided that it passes testing, I will
commit the following patch as obvious.
Zdenek
Index: sched-rgn.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/sched-rgn.c,v
retrieving revision 1.62
diff -c -3 -p -r1.62 sched-rgn.c
*** sched-rgn.c 19 Jul 2003 14:47:13 -0000 1.62
--- sched-rgn.c 19 Jul 2003 21:30:41 -0000
*************** find_rgns (struct edge_list *edge_list,
*** 618,624 ****
int *max_hdr, *dfs_nr, *stack, *degree;
char no_loops = 1;
int node, child, loop_head, i, head, tail;
! int count = 0, sp, idx = 0, current_edge = out_edges[0];
int num_bbs, num_insns, unreachable;
int too_large_failure;
basic_block bb;
--- 618,625 ----
int *max_hdr, *dfs_nr, *stack, *degree;
char no_loops = 1;
int node, child, loop_head, i, head, tail;
! int count = 0, sp, idx = 0;
! int current_edge = out_edges[ENTRY_BLOCK_PTR->succ->dest->index];
int num_bbs, num_insns, unreachable;
int too_large_failure;
basic_block bb;
More information about the Gcc-bugs
mailing list