https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71924
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I expect we also miss: void* foo1 (void) { char a [4]; char *b = a; return b; } void* foo2 (void) { char *b = (char[4]){0, 0, 0, 0}; return b; } Basically we don't do any flow analysis for this warning.