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 ();
^