1 /* Test STT_GNU_IFUNC symbols without direct function call. */
4 int global
__attribute__ ((visibility ("protected"))) = -1;
24 void * foo_ifunc (void) __asm__ ("foo");
25 __asm__(".type foo, %gnu_indirect_function");
30 return ifunc_sel (one
, minus_one
, zero
);
33 void * foo_hidden_ifunc (void) __asm__ ("foo_hidden");
34 __asm__(".type foo_hidden, %gnu_indirect_function");
37 foo_hidden_ifunc (void)
39 return ifunc_sel (minus_one
, one
, zero
);
42 void * foo_protected_ifunc (void) __asm__ ("foo_protected");
43 __asm__(".type foo_protected, %gnu_indirect_function");
46 foo_protected_ifunc (void)
48 return ifunc_sel (one
, zero
, minus_one
);
51 /* Test hidden indirect function. */
52 __asm__(".hidden foo_hidden");
54 /* Test protected indirect function. */
55 __asm__(".protected foo_protected");