This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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);
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]