Home | History | Annotate | Download | only in ld-ifunc
      1 int foo (int x) __attribute__ ((ifunc ("resolve_foo")));
      2 extern void abort (void);
      3 
      4 static int foo_impl(int x)
      5 {
      6   return x;
      7 }
      8 
      9 int bar()
     10 {
     11   int (*f)(int) = foo;
     12 
     13   if (foo (5) != 5)
     14     abort ();
     15 
     16   if (f(42) != 42)
     17     abort ();
     18 }
     19 
     20 
     21 void *resolve_foo (void)
     22 {
     23   return (void *) foo_impl;
     24 }
     25