Index: testsuite/gcc.dg/tm/pr46567-2.c
===================================================================
--- testsuite/gcc.dg/tm/pr46567-2.c	(revision 0)
+++ testsuite/gcc.dg/tm/pr46567-2.c	(revision 0)
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-fgnu-tm" } */
+
+int funky();
+int global;
+
+void SeqfileGetLine()
+{
+  funky();
+}
+
+__attribute__((transaction_callable)) void readLoop()
+{
+        SeqfileGetLine();
+        if (global)
+          funky();
+
+}
Index: trans-mem.c
===================================================================
--- trans-mem.c	(revision 170050)
+++ trans-mem.c	(working copy)
@@ -3753,8 +3753,8 @@ ipa_tm_propagate_irr (basic_block entry_
 	       son = next_dom_son (CDI_DOMINATORS, son))
 	    {
 	      /* Make sure a block isn't already in old_irr.  */
-	      gcc_assert (!old_irr || !bitmap_bit_p (old_irr, son->index));
-	      bitmap_set_bit (new_irr, son->index);
+	      if (!old_irr || !bitmap_bit_p (old_irr, son->index))
+		bitmap_set_bit (new_irr, son->index);
 	    }
 	}
     }
