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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
           Keywords|                            |diagnostic

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Tim Van Holder from comment #4)
> Marking as C++ rather than C; while Bison generates C code, here it gets
> compiled in C++ context (with a namespace wrapped around Bison's symbols).

Thanks, I can confirm the diagnostic with -O0, it goes away when optimizing.

The issue seems to be that yyss (or yymsg) are not assigned to anywhere
in the function and so we essentially have

void foo()
{
  char buf[20];
  char *bufp = buf;
  if (bufp != buf)
    free (bufp);
}

which we diagnose.  When optimizing the test is optimized away.

Reply via email to