1/* Bombed with a segfault on powerpc-linux.  doloop.c generated wrong
2   loop count.  */
3void
4foo (unsigned long *start, unsigned long *end)
5{
6  unsigned long *temp = end - 1;
7
8  while (end > start)
9    *end-- = *temp--;
10}
11
12int
13main (void)
14{
15  unsigned long a[5];
16  int start, end, k;
17
18  for (start = 0; start < 5; start++)
19    for (end = 0; end < 5; end++)
20      {
21	for (k = 0; k < 5; k++)
22	  a[k] = k;
23
24	foo (a + start, a + end);
25
26	for (k = 0; k <= start; k++)
27	  if (a[k] != k)
28	    abort ();
29
30	for (k = start + 1; k <= end; k++)
31	  if (a[k] != k - 1)
32	    abort ();
33
34	for (k = end + 1; k < 5; k++)
35	  if (a[k] != k)
36	    abort ();
37      }
38
39  return 0;
40}
41