]> git.ipfire.org Git - thirdparty/glibc.git/blob - elf/ifuncmain5.c
dlfcn: Remove remnants of caller sensitivity from dlinfo
[thirdparty/glibc.git] / elf / ifuncmain5.c
1 /* Test STT_GNU_IFUNC symbols with dynamic function pointer only. */
2
3 #include <stdlib.h>
4
5 extern int foo (void);
6 extern int foo_protected (void);
7
8 typedef int (*foo_p) (void);
9
10 foo_p
11 __attribute__ ((noinline))
12 get_foo (void)
13 {
14 return foo;
15 }
16
17 foo_p
18 __attribute__ ((noinline))
19 get_foo_protected (void)
20 {
21 return foo_protected;
22 }
23
24 int
25 main (void)
26 {
27 foo_p p;
28
29 p = get_foo ();
30 if ((*p) () != -1)
31 abort ();
32
33 p = get_foo_protected ();
34 if ((*p) () != 0)
35 abort ();
36
37 return 0;
38 }