/* { dg-do run } */ /* { dg-require-effective-target trampolines } */ /* { dg-additional-options "-fipa-pta" } */ void callme (void (*callback) (void)); int main (void) { int ok = 0; void callback (void) { ok = 1; } callme (&callback); if (!ok) __builtin_abort (); return 0; } __attribute__((noinline, noclone)) void callme (void (*callback) (void)) { (*callback) (); }