------- Comment #4 from rakdver at gcc dot gnu dot org  2007-07-11 20:56 -------
The following patch fixes the problem; I am not quite sure why this check is
there.

Index: cfghooks.c
===================================================================
*** cfghooks.c  (revision 126547)
--- cfghooks.c  (working copy)
*************** tidy_fallthru_edges (void)
*** 838,845 ****
  bool
  can_duplicate_block_p (basic_block bb)
  {
-   edge e;
-
    if (!cfg_hooks->can_duplicate_block_p)
      internal_error ("%s does not support can_duplicate_block_p",
                    cfg_hooks->name);
--- 838,843 ----
*************** can_duplicate_block_p (basic_block bb)
*** 847,858 ****
    if (bb == EXIT_BLOCK_PTR || bb == ENTRY_BLOCK_PTR)
      return false;

-   /* Duplicating fallthru block to exit would require adding a jump
-      and splitting the real last BB.  */
-   e = find_edge (bb, EXIT_BLOCK_PTR);
-   if (e && (e->flags & EDGE_FALLTHRU))
-     return false;
-
    return cfg_hooks->can_duplicate_block_p (bb);
  }

--- 845,850 ----


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32729

Reply via email to