+2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR tree-optimization/18270
+       * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
+       abnormal edges, commit all pending stmts on incoming edges.
+
 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
 
   bool is_label;
 
   count = 0;
+
+  /* Blocks which contain at least one abnormal edge cannot use 
+     make_forwarder_block.  Look for these blocks, and commit any PENDING_STMTs
+     found on edges in these block.  */
+  have_opportunity = true;
+  FOR_EACH_EDGE (e, ei, bb->preds)
+    if (e->flags & EDGE_ABNORMAL)
+      {
+        have_opportunity = false;
+       break;
+      }
+
+  if (!have_opportunity)
+    {
+      FOR_EACH_EDGE (e, ei, bb->preds)
+       if (PENDING_STMT (e))
+         bsi_commit_one_edge_insert (e, NULL);
+      return false;
+    }
   /* Find out how many edges there are with interesting pending stmts on them.  
      Commit the stmts on edges we are not interested in.  */
   FOR_EACH_EDGE (e, ei, bb->preds)