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

Reply via email to