/* 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" } */
      bar (g * g);
    }
}
