OSDN Git Service

* cfglayout.c (fixup_reorder_chain): Handle case where the
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Jun 2004 16:49:22 +0000 (16:49 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Jun 2004 16:49:22 +0000 (16:49 +0000)
destination of E_FALL is EXIT_BLOCK_PTR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83247 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cfglayout.c

index ca3913f..0c13c56 100644 (file)
@@ -712,13 +712,15 @@ fixup_reorder_chain (void)
                  if (note
                      && INTVAL (XEXP (note, 0)) < REG_BR_PROB_BASE / 2
                      && invert_jump (bb_end_insn,
-                                     label_for_bb (e_fall->dest), 0))
+                                     (e_fall->dest == EXIT_BLOCK_PTR
+                                      ? NULL_RTX
+                                      : label_for_bb (e_fall->dest)), 0))
                    {
+                     e_fall->flags &= ~EDGE_FALLTHRU;
 #ifdef ENABLE_CHECKING
                      if (!could_fall_through (e_taken->src, e_taken->dest))
                        abort ();
 #endif
-                     e_fall->flags &= ~EDGE_FALLTHRU;
                      e_taken->flags |= EDGE_FALLTHRU;
                      update_br_prob_note (bb);
                      e = e_fall, e_fall = e_taken, e_taken = e;