https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91470
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |10.2.0, 11.0 Last reconfirmed|2019-08-27 00:00:00 |2021-4-15 CC| |msebor at gcc dot gnu.org --- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> --- Reconfirmed with GCC 11 and a reduced/corrected test case and slightly enhanced output: $ cat pr91470.c && gcc -O2 -S -Wall pr91470.c int i1; int* f1 (int); void f2 (int, int); void g2 (int, void *); void f0 (void) { int *p; for (int i = 0; i < 2; i++) { f2 (0, 0); f2 (0, 0); f2 (0, 0); f2 (0, 0); g2 (i1, 0); if (i == 0) p = f1 (0); } g2 (i1, p); } void f0 () { int i; int * p; int i1.0_1; int i1.1_2; int _6; <bb 2> [local count: 357878152]: <bb 3> [local count: 715863673]: # p_26 = PHI <p_4(6), p_9(D)(2)> # i_27 = PHI <_6(6), 0(2)> # .MEM_28 = PHI <.MEM_25(6), .MEM_10(D)(2)> # .MEM_12 = VDEF <.MEM_28> f2 (0, 0); # .MEM_13 = VDEF <.MEM_12> f2 (0, 0); # .MEM_14 = VDEF <.MEM_13> f2 (0, 0); # .MEM_15 = VDEF <.MEM_14> f2 (0, 0); # VUSE <.MEM_15> i1.0_1 = i1; # .MEM_16 = VDEF <.MEM_15> g2 (i1.0_1, 0B); _6 = i_27 + 1; if (_6 == 1) goto <bb 4>; [21.69%] else goto <bb 5>; [78.31%] <bb 4> [local count: 155270830]: # .MEM_17 = VDEF <.MEM_16> p_18 = f1 (0); goto <bb 6>; [100.00%] <bb 5> [local count: 560592843]: if (_6 != 2) goto <bb 8>; [36.16%] else goto <bb 7>; [63.84%] <bb 8> [local count: 202714689]: <bb 6> [local count: 357985519]: # p_4 = PHI <p_26(8), p_18(4)> # .MEM_25 = PHI <.MEM_16(8), .MEM_17(4)> goto <bb 3>; [100.00%] <bb 7> [local count: 357878152]: # VUSE <.MEM_16> i1.1_2 = i1; # .MEM_11 = VDEF <.MEM_16> g2 (i1.1_2, p_26); [tail call] # VUSE <.MEM_11> return; } pr91470.c: In function ‘f0’: pr91470.c:23:3: warning: ‘p’ may be used uninitialized in this function [-Wmaybe-uninitialized] 23 | g2 (i1, p); | ^~~~~~~~~~ pr91470.c:9:8: note: used when ‘i + 1 != 1 && i + 1 != 2 || i + 1 != 1 && i + 1 == 2’ 9 | int *p; | ^ pr91470.c:9:8: note: ‘p’ was declared here