| void foo() __attribute__((ifunc("resolve_foo"))); | |
| static void foo_impl() {} | |
| extern void abort (void); | |
| void test() | |
| { | |
| void (*pg)(void) = foo; | |
| if (pg != foo_impl) | |
| abort (); | |
| pg(); | |
| } | |
| static void* resolve_foo() | |
| { | |
| extern void zoo(void); | |
| void (*pz)(void) = zoo; | |
| pz(); | |
| return foo_impl; | |
| } |