--- gcc-3.4.0/gcc/flow.c.reverse-compare	2004-02-27 22:39:19.000000000 -0500
+++ gcc-3.4.0/gcc/flow.c	2004-04-24 16:36:00.000000000 -0400
@@ -1843,6 +1843,7 @@
       regset_head diff_head;
       regset diff = INITIALIZE_REG_SET (diff_head);
       basic_block bb_true, bb_false;
+      enum rtx_code reversed_code;
       int i;
 
       /* Identify the successor blocks.  */
@@ -1889,8 +1890,11 @@
 	  if (GET_CODE (reg) == REG
 	      && XEXP (cond_true, 1) == const0_rtx)
 	    {
-	      rtx cond_false
-		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
+	      rtx cond_false;
+	      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)
@@ -1925,6 +1929,7 @@
 	    }
 	}
 
+    skip:
       FREE_REG_SET (diff);
     }
 #endif