--- gcc-3.3.3/gcc/flow.c~	2003-07-30 01:57:24.000000000 +0100
+++ gcc-3.3.3/gcc/flow.c	2004-04-23 19:23:43.000000000 +0100
@@ -1904,6 +1904,7 @@
       regset diff = INITIALIZE_REG_SET (diff_head);
       basic_block bb_true, bb_false;
       rtx cond_true, cond_false, set_src;
+      enum rtx_code reversed_code;
       int i;
 
       /* Identify the successor blocks.  */
@@ -1934,7 +1935,11 @@
       /* Extract the condition from the branch.  */
       set_src = SET_SRC (pc_set (bb->end));
       cond_true = XEXP (set_src, 0);
-      cond_false = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
+      reversed_code = reverse_condition (GET_CODE (cond_true));
+      if (reversed_code == UNKNOWN)
+	goto skip;
+
+      cond_false = gen_rtx_fmt_ee (reversed_code,
 				   GET_MODE (cond_true), XEXP (cond_true, 0),
 				   XEXP (cond_true, 1));
       if (GET_CODE (XEXP (set_src, 1)) == PC)
@@ -1980,6 +1985,7 @@
 	     });
 	}
 
+    skip:
       FREE_REG_SET (diff);
     }
 #endif
