int foo (int) __attribute__ ((ifunc ("resolve_foo"))); | |
extern void abort (void); | |
static int | |
foo_impl (int x) | |
{ | |
return x; | |
} | |
void | |
bar (void) | |
{ | |
int (*f)(int) = foo; | |
if (foo (5) != 5) | |
abort (); | |
if (f (42) != 42) | |
abort (); | |
} | |
void * | |
resolve_foo (void) | |
{ | |
return (void *) foo_impl; | |
} |