===================================================================
@@ -1015,7 +1015,7 @@ eliminate_using_constants (enum tree_cod
fprintf (dump_file, "Found * 0, removing all other ops\n");
reassociate_stats.ops_eliminated += ops->length () - 1;
- ops->truncate (1);
+ ops->truncate (0);
ops->quick_push (oelast);
return;
}
===================================================================
@@ -0,0 +1,27 @@
+/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
+
+unsigned long a, c;
+unsigned b;
+int d, e;
+long f()
+{
+ unsigned long g = 0;
+ for (d = 0; d < 5; d += 2)
+ for (e = 0; e < 5; e += 3)
+ {
+ c = 4 + b;
+ g = -b - b;
+ b = 5 * (b << 24);
+ }
+ a = g;
+ return 0;
+}
+
+int main()
+{
+ f();
+ if (a)
+ __builtin_abort();
+ return 0;
+}