https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78993

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-01-05
                 CC|                            |msebor at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
Confirmed.  The following is a somewhat simplified test case.

$ cat t.c && gcc -O2 -S -Wall t.c
extern int rand ();

const char* foo (int i, int *p)
{
  int j = rand ();

  if (i >= j)
    return "";

  *p = j;
  return 0;
}

int bar (int i)
{
  if (i < 0)
    i = rand ();
  return i < 10;
}

int foobar (int i)
{
  int j;
  const char *p = foo (i, &j);

  if (bar (i))
    {
      if (p)
        return 0;
    }
  else
    return 0;

  return j;
}
t.c: In function ‘foobar’:
t.c:23:7: warning: ‘j’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
   int j;
       ^

Reply via email to