1 /* { dg-do run } */ 2 /* { dg-require-effective-target trampolines } */ 3 /* { dg-additional-options "-fipa-pta" } */ 4 5 void callme (void (*callback) (void)); 6 7 int main(void)8main (void) 9 { 10 int ok = 0; 11 void callback (void) { ok = 1; } 12 13 callme (&callback); 14 15 if (!ok) 16 __builtin_abort (); 17 return 0; 18 } 19 20 __attribute__((noinline, noclone)) 21 void callme(void (* callback)(void))22callme (void (*callback) (void)) 23 { 24 (*callback) (); 25 } 26