http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57287
meadori at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |meadori at gcc dot gnu.org --- Comment #14 from meadori at gcc dot gnu.org --- (In reply to hmb from comment #13) > Created attachment 30201 [details] > preprocessed source code > > Attaching the preprocessed source code Here is a reduction (as of trunk today): $ cat test.c #include <setjmp.h> #include <stdio.h> struct node { struct node *next; char *name; } *list; struct node *list; struct node *head (void); sigjmp_buf *bar (void); int baz (void) { struct node *n; int varseen = 0; list = head (); for (n = list; n; n = n->next) { if (!varseen) varseen = 1; sigjmp_buf *buf = bar (); __sigsetjmp (*buf, 1); } if (!varseen) return 0; return 1; } $ i686-pc-linux-gnu-gcc --version i686-pc-linux-gnu-gcc (GCC) 4.9.0 20130819 (experimental) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ i686-pc-linux-gnu-gcc -Wall -O2 -c test.c test.c: In function 'baz': test.c:26:19: warning: 'buf' may be used uninitialized in this function [-Wmaybe-uninitialized] sigjmp_buf *buf = bar (); ^