https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69723
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
As for the missed -Wuninitialized at -O0, wonder if we couldn't do something
about it for GCC 7.
volatile int v;
void bar (void)
{
int x;
v++;
for (; x < 100; x++) v++;
v++;
}
Here, we have
# x_1 = PHI <x_7(D)(2), x_11(3)>
if (x_1 <= 99)
in an always_executed basic block, normally we don't look at PHIs in the early
uninit pass at all, but wonder if for always_executed bbs we couldn't make an
exception - if the uninited value is from the immediate dominator of the bb and
the PHI result is used in an always_executed basic block, it IMHO means a clear
case where the use is always uninitialized (if the function is ever called, but
other must uninitialized warnings are making the same assumption).