http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46316

           Summary: [4.6 regression] incorrect loop optimization
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ebotca...@gcc.gnu.org


The Ada runtime (a-calend.adb) is miscompiled at -O2 on x86 at revision 166350.
An infinite loop is generated by the compiler in the UTC_Time_Offset function.

The reduced C testcase is just:

extern void abort (void);

long long __attribute__((noinline,noclone))
foo (long long t)
{
  while (t > -4)
    t -= 2;

  return t;
}

int main(void)
{
  if (foo (0) != -4)
    abort ();
  return 0;
}

e...@atlantis:~/build/gcc/native32> gcc/xgcc -Bgcc -o t t.c -O2
e...@atlantis:~/build/gcc/native32> ./t
^C
e...@atlantis:~/build/gcc/native32>

Reply via email to