c/8467: Bug in sibling call optimization

Franz.Sirl-kernel@lauterbach.com Franz.Sirl-kernel@lauterbach.com
Tue Nov 5 12:26:00 GMT 2002


>Number:         8467
>Category:       c
>Synopsis:       Bug in sibling call optimization
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 05 12:26:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Franz.Sirl-kernel@lauterbach.com
>Release:        gcc-3.2.1pre, gcc-3.3exp
>Organization:
>Environment:
powerpc-linux-gnu
>Description:
The appended testcase aborts if compiled with -O2, adding -fno-optimize-sibling-calls makes it pass.

This is a regression from gcc-2.95.4.
>How-To-Repeat:
extern void abort (void);
extern void exit (int);

int aim_callhandler(int sess, int conn, unsigned short family, unsigned short type)
{
  static int i = 0;

  if (!conn)
    return 0;

  if (type == 0xffff)
    {
      return 0;
    }

  if (i >= 1)
    abort ();

  i++;
  return aim_callhandler(sess, conn, family, 0xffff);
}

int main (void)
{
  aim_callhandler (0, 1, 0, 0);
  exit (0);
}
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list