OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / 930930-1.c
1 __extension__ typedef __PTRDIFF_TYPE__ ptr_t;
2 ptr_t *wm_TR;
3 ptr_t *wm_HB;
4 ptr_t *wm_SPB;
5
6 ptr_t mem[100];
7
8 f (mr_TR, mr_SPB, mr_HB, reg1, reg2)
9      ptr_t *mr_TR;
10      ptr_t *mr_SPB;
11      ptr_t *mr_HB;
12      ptr_t *reg1;
13      ptr_t *reg2;
14 {
15   ptr_t *x = mr_TR;
16
17   for (;;)
18     {
19       if (reg1 < reg2)
20         goto out;
21       if ((ptr_t *) *reg1 < mr_HB && (ptr_t *) *reg1 >= mr_SPB)
22         *--mr_TR = *reg1;
23       reg1--;
24     }
25  out:
26
27   if (x != mr_TR)
28     abort ();
29 }
30
31 main ()
32 {
33   mem[99] = (ptr_t) mem;
34   f (mem + 100, mem + 6, mem + 8, mem + 99, mem + 99);
35   exit (0);
36 }