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