Index: gcc/tree-ssa-tail-merge.c
===================================================================
--- gcc/tree-ssa-tail-merge.c (revision 180562)
+++ gcc/tree-ssa-tail-merge.c (working copy)
@@ -1604,7 +1604,10 @@ replace_block_by (basic_block bb1, basic
   same_succ_flush_bb (bb1);
   delete_basic_block (bb1);
 
-  fix_dom_bb = VEC_alloc (basic_block, heap, 2);
+  if (single_pred_p (bb2))
+    fix_dom_bb = get_dominated_by (CDI_DOMINATORS, single_pred (bb2));
+  else
+    fix_dom_bb = VEC_alloc (basic_block, heap, 2);
   VEC_safe_push (basic_block, heap, fix_dom_bb, bb2);
   FOR_EACH_EDGE (e, ei, bb2->succs)
     VEC_safe_push (basic_block, heap, fix_dom_bb, e->dest);
