Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / gcc.c-torture / execute / nestfunc-3.c
blob9d09b196d23bea0655c4d651576ac3402545a62d
2 extern long foo (long, long, long (*) (long, long));
3 extern long use (long (*) (long, long), long, long);
5 int
6 main (void)
8 #ifndef NO_TRAMPOLINES
9 long sum = 0;
10 long i;
12 long nested_0 (long a, long b)
14 if (a > 2 * b)
15 return a - b;
16 else
17 return b - a;
20 long nested_1 (long a, long b)
22 return use (nested_0, b, a) + sum;
25 long nested_2 (long a, long b)
27 return nested_1 (b, a);
30 for (i = 0; i < 10; ++i)
32 long j;
34 for (j = 0; j < 10; ++j)
36 long k;
38 for (k = 0; k < 10; ++k)
39 sum += foo (i, j > k ? j - k : k - j, nested_2);
43 if ((sum & 0xffffffff) != 0xbecfcbf5)
44 abort ();
45 #endif
47 exit (0);
50 long
51 use (long (* func)(long, long), long a, long b)
53 return func (b, a);
56 long
57 foo (long a, long b, long (* func) (long, long))
59 return func (a, b);