Fix modref's iteraction with store merging
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / loop-15.c
blob40f4915ba68d8742de522e308c03de90bc901fde
1 /* Bombed with a segfault on powerpc-linux. doloop.c generated wrong
2 loop count. */
3 void abort (void);
5 void
6 foo (unsigned long *start, unsigned long *end)
8 unsigned long *temp = end - 1;
10 while (end > start)
11 *end-- = *temp--;
14 int
15 main (void)
17 unsigned long a[5];
18 int start, end, k;
20 for (start = 0; start < 5; start++)
21 for (end = 0; end < 5; end++)
23 for (k = 0; k < 5; k++)
24 a[k] = k;
26 foo (a + start, a + end);
28 for (k = 0; k <= start; k++)
29 if (a[k] != k)
30 abort ();
32 for (k = start + 1; k <= end; k++)
33 if (a[k] != k - 1)
34 abort ();
36 for (k = end + 1; k < 5; k++)
37 if (a[k] != k)
38 abort ();
41 return 0;