3.3 error when inlining

Ulrich Weigand weigand@immd1.informatik.uni-erlangen.de
Thu Jun 12 15:22:00 GMT 2003


Hello,

when compiling the reduced testcase below with -O3 on gcc 3.3, I'm getting
the following error message:

scopebug.i: In function `outer':
scopebug.i:13: error: jump to `label' invalidly jumps into binding contour

With -O2, the testcase compiles fine.  CVS head compiles it without error
either with -O2 or -O3.

>From my reading of the standard, the testcase should be correct C,
so I guess the 3.3 inliner may get confused about scopes ...

static void
inner (int len)
{
  {
    char buf[len];

    if (0)
      {
        label:
          return;
      }

    goto label;
  }
}

void
outer (int len)
{
  inner (len);
}

-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de



More information about the Gcc mailing list