+++ /dev/null
-
-extern long foo (long, long, long (*) (long, long));
-extern long use (long (*) (long, long), long, long);
-
-int
-main (void)
-{
-#ifndef NO_TRAMPOLINES
- long sum = 0;
- long i;
-
- long nested_0 (long a, long b)
- {
- if (a > 2 * b)
- return a - b;
- else
- return b - a;
- }
-
- long nested_1 (long a, long b)
- {
- return use (nested_0, b, a) + sum;
- }
-
- long nested_2 (long a, long b)
- {
- return nested_1 (b, a);
- }
-
- for (i = 0; i < 10; ++i)
- {
- long j;
-
- for (j = 0; j < 10; ++j)
- {
- long k;
-
- for (k = 0; k < 10; ++k)
- sum += foo (i, j > k ? j - k : k - j, nested_2);
- }
- }
-
- if ((sum & 0xffffffff) != 0xbecfcbf5)
- abort ();
-#endif
-
- exit (0);
-}
-
-long
-use (long (* func)(long, long), long a, long b)
-{
- return func (b, a);
-}
-
-long
-foo (long a, long b, long (* func) (long, long))
-{
- return func (a, b);
-}