/* { dg-do compile } */ /* { dg-options "-fgimple -O -Wmaybe-uninitialized" } */ unsigned int __GIMPLE (ssa,startwith("uninit1")) foo (unsigned int v) { unsigned int undef; /* { dg-warning "may be used uninitialized" } */ unsigned int _2; unsigned int _9; unsigned int _10; __BB(2): if (v_4(D) != 1u) goto __BB3; else goto __BB4; __BB(3): undef_8 = 8u; // 'undef' is defined conditionally (under 'v != 1' 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) != 2u) // This condition is neither a superset nor a subset of 'v != 1'. goto __BB5; else goto __BB6; __BB(5): _9 = undef_1; // The phi value is used here (under 'v != 2' predicate). goto __BB7; __BB(6): _10 = v_4(D); goto __BB7; __BB(7): _2 = __PHI (__BB5: _9, __BB6: _10); return _2; }