https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78625

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aldyh at gcc dot gnu.org
          Component|rtl-optimization            |tree-optimization
   Target Milestone|---                         |7.0

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
#2  0x0000000001171bdf in pred_neg_p (x1=..., x2=...)
    at /space/rguenther/src/svn/trunk/gcc/tree-ssa-uninit.c:1488
1488        c2 = invert_tree_comparison (x2.cond_code, false);
(gdb) l
1483          || !operand_equal_p (x1.pred_rhs, x2.pred_rhs, 0))
1484        return false;
1485
1486      c1 = x1.cond_code;
1487      if (x1.invert == x2.invert)
1488        c2 = invert_tree_comparison (x2.cond_code, false);

x2.cond_code is BIT_AND_EXPR.  Sth like

Index: gcc/tree-ssa-uninit.c
===================================================================
--- gcc/tree-ssa-uninit.c       (revision 243100)
+++ gcc/tree-ssa-uninit.c       (working copy)
@@ -1485,7 +1485,12 @@ pred_neg_p (pred_info x1, pred_info x2)

   c1 = x1.cond_code;
   if (x1.invert == x2.invert)
-    c2 = invert_tree_comparison (x2.cond_code, false);
+    {
+      if (TREE_CODE_CLASS (x2.cond_code) == tcc_comparison)
+       c2 = invert_tree_comparison (x2.cond_code, false);
+      else
+       return false;
+    }
   else
     c2 = x2.cond_code;

might fix it.

Reply via email to