This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: 3.3 error when inlining
On Friday 13 June 2003 11:52 am, Michael S. Zick wrote:
>
> I'll do some more source level checking and see if I can come up with
> useful information.
>
I think the following confirms that the problem is more extensive...
Use release-3.3, on x86 (for i686)...
Use the below modification of the test case...
Compile without any gcc options, other than: -S -g ...
Inspect output.s ...
Bingo - silent generation of unexpected (wrong?) code.
static void
inner (int len)
{
{
char buf[len];
if (len > 10) /* (len > 10) code generated */
{ /* no conditional jump generated */
label: /* label point generated, not referenced */
len++ ; /* code generated */
return; /* I suspect this code is suppressed */
}
goto label; /* no code generated */
}
/* implicit return - I suspect this is generating the
return code seen in the output. */
}
void
outer (int len)
{
inner (len);
}