https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78993
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Status|UNCONFIRMED |NEW Last reconfirmed| |2017-01-05 CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed. The following is a somewhat simplified test case. $ cat t.c && gcc -O2 -S -Wall t.c extern int rand (); const char* foo (int i, int *p) { int j = rand (); if (i >= j) return ""; *p = j; return 0; } int bar (int i) { if (i < 0) i = rand (); return i < 10; } int foobar (int i) { int j; const char *p = foo (i, &j); if (bar (i)) { if (p) return 0; } else return 0; return j; } t.c: In function ‘foobar’: t.c:23:7: warning: ‘j’ may be used uninitialized in this function [-Wmaybe-uninitialized] int j; ^