https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70736
Bug ID: 70736 Summary: false positive uninitialized warning Product: gcc Version: 5.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: willy6545 at gmail dot com Target Milestone: --- This function reproduces the problem; yes it looks weird, but it's simplified from a less weird function. I compile it with 'gcc -O2 -Wmaybe-uninitialized' void *foo(char *); int main(int argc, char **argv) { void *a = argv[0], *b; if (!a) return 0; do { if (a) { b = a; a = *argv++; } foo(b); } while (b); return 0; } gcc version 5.3.1 20160316 (Debian 5.3.1-12)