elf: Ignore LD_AUDIT interfaces if la_version returns 0 [BZ #24122]
[platform/upstream/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 }