===================================================================
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+
+int
+nf (int gy, int x0)
+{
+ while (gy < 1)
+ ++x0;
+
+ gy += !!gy;
+ if (gy < 0)
+ {
+ x0 += gy;
+ return (x0 > (gy + x0)) ? (1 / 0) : 1; /* { dg-warning "division by zero" } */
+ }
+}
+
===================================================================
@@ -796,7 +796,8 @@ get_single_symbol (tree t, bool *neg, tr
if (TREE_CODE (t) != SSA_NAME)
return NULL_TREE;
- gcc_assert (! inv_ || ! TREE_OVERFLOW_P (inv_));
+ if (inv_ && TREE_OVERFLOW_P (inv_))
+ inv_ = drop_tree_overflow (inv_);
*neg = neg_;
*inv = inv_;