@@ -0,0 +1,27 @@
+/* PR tree-optimization/59924 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -Wall" } */
+
+struct S { struct T *a; double b; struct S *c; };
+struct T { struct S *d; };
+extern void bar (double);
+
+void
+foo (struct S * x, int y, int z, int w)
+{
+ int e;
+ struct S *f;
+ for (f = x->a->d; f; f = f->c)
+ {
+ if (5 < w)
+ {
+ e = -w;
+ z = w;
+ }
+ }
+ if (y != 0 || z != 0)
+ {
+ double g = x->b + (double) e * (double) y; /* { dg-warning "may be used uninitialized in this function" } */
+ bar (g * g);
+ }
+}