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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
            Summary|Incorrect optimization      |Incorrect optimization in
                   |                            |SCEV const-prop
      Known to fail|                            |4.4.7, 4.5.4, 4.6.4, 4.7.3,
                   |                            |4.8.1, 4.9.0

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
C testcase that fails everywhere:

/* { dg-do run } */

long long arr[6] = {0, 1, 2, 3, 4, 5};
extern  void abort (void);
void __attribute__((noinline,noclone))
foo (long long sum)
{
  asm ("");
}
int main()
{
  int i, n = 5;
  long long sum = 0, prevsum = 0;

  for(i = 1; i <= n; i++)
    {
      foo (sum);
      sum = (i - 1) * arr[i] - prevsum;
      prevsum += arr[i];
    }

  if (sum != 10)
    abort ();
  return 0;
}

Reply via email to