This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/17513] [4.0 Regression] ICE: verify_flow_info failed after gcse


------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]