1 /* { dg-require-effective-target trampolines } */
2 
f0(int (* fn)(int *),int * p)3 int f0(int (*fn)(int *), int *p)
4 {
5   return (*fn) (p);
6 }
7 
f1(void)8 int f1(void)
9 {
10   int i = 0;
11 
12   int f2(int *p)
13   {
14     i = 1;
15     return *p + 1;
16   }
17 
18   return f0(f2, &i);
19 }
20 
main()21 int main()
22 {
23   if (f1() != 2)
24     abort ();
25 
26   return 0;
27 }
28