1 /* { dg-require-effective-target trampolines } */ 2 f0(int (* fn)(int *),int * p)3int f0(int (*fn)(int *), int *p) 4 { 5 return (*fn) (p); 6 } 7 f1(void)8int 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()21int main() 22 { 23 if (f1() != 2) 24 abort (); 25 26 return 0; 27 } 28