This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/17513] [4.0 Regression] ICE: verify_flow_info failed after gcse
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Sep 2004 08:50:03 -0000
- Subject: [Bug rtl-optimization/17513] [4.0 Regression] ICE: verify_flow_info failed after gcse
- References: <20040916080438.17513.steven@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2004-09-16 08:49 -------
Probably need a patch like this,
Index: cfgexpand.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgexpand.c,v
retrieving revision 2.23
diff -c -3 -p -r2.23 cfgexpand.c
*** cfgexpand.c 11 Sep 2004 20:07:11 -0000 2.23
--- cfgexpand.c 16 Sep 2004 08:48:55 -0000
*************** static basic_block
*** 1082,1092 ****
construct_init_block (void)
{
basic_block init_block, first_block;
! edge e;
! for (e = ENTRY_BLOCK_PTR->succ; e; e = e->succ_next)
! if (e->dest == ENTRY_BLOCK_PTR->next_bb)
! break;
init_block = create_basic_block (NEXT_INSN (get_insns ()),
get_last_insn (),
--- 1082,1102 ----
construct_init_block (void)
{
basic_block init_block, first_block;
! edge e = NULL, e2;
! for (e2 = ENTRY_BLOCK_PTR->succ; e2; e2 = e2->succ_next)
! {
! /* Clear EDGE_EXECUTABLE. This flag is never used in the backend.
!
! For all other blocks this edge flag is cleared while expanding
! a basic block in expand_gimple_basic_block, but there we never
! looked at the successors of the entry block.
! This caused PR17513. */
! e2->flags &= ~EDGE_EXECUTABLE;
!
! if (e2->dest == ENTRY_BLOCK_PTR->next_bb)
! e = e2;
! }
init_block = create_basic_block (NEXT_INSN (get_insns ()),
get_last_insn (),
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17513