/* { dg-do compile } */
/* { dg-options "-fgimple -O -Wmaybe-uninitialized" } */

unsigned int __GIMPLE (ssa,startwith("uninit1"))
foo (unsigned int v)
{
  unsigned int undef;        /* { dg-bogus "may be used uninitialized" } */
  unsigned int _2;
  unsigned int _9;
  unsigned int _10;

  __BB(2):
  if (v_4(D) != 100u)
    goto __BB3;
  else
    goto __BB4;

  __BB(3):
  undef_8 = 8u; // 'undef' is defined conditionally (under 'v != 100' predicate)
  goto __BB4;

  __BB(4):
  // An undef value flows into a phi.
  undef_1 = __PHI (__BB2: undef_5(D), __BB3: undef_8);
  if (v_4(D) < 100u)
    goto __BB5;
  else
    goto __BB6;

  __BB(5):
  _9 = undef_1; // The phi value is used here (under 'v < 100' predicate).
  goto __BB7;

  __BB(6):
  _10 = v_4(D);
  goto __BB7;

  __BB(7):
  _2 = __PHI (__BB5: _9, __BB6: _10);
  return _2;
}
