97bb2200e7339e2593baed7e13c13a44686fdc15
[deliverable/binutils-gdb.git] / ld / testsuite / ld-elfvsb / main.c
1 /* This is the main program for the shared library test. */
2
3 #include <stdio.h>
4
5 int mainvar = 1;
6 int overriddenvar = 2;
7 extern int shlibvar1;
8
9 extern int shlib_mainvar ();
10 extern int shlib_overriddenvar ();
11 extern int shlib_shlibvar1 ();
12 extern int shlib_shlibvar2 ();
13 extern int shlib_shlibcall ();
14 extern int shlib_maincall ();
15 extern int shlib_checkfunptr1 ();
16 extern int shlib_checkfunptr2 ();
17 extern int (*shlib_getfunptr1 ()) ();
18 extern int (*shlib_getfunptr2 ()) ();
19 extern int shlib_check ();
20 extern int shlib_shlibcall2 ();
21 extern int visibility ();
22 extern int visibility_check ();
23 extern int visibility_checkfunptr ();
24 extern void *visibility_funptr ();
25
26 #if !defined (HIDDEN_TEST) && defined (PROTECTED_TEST)
27 int
28 visibility ()
29 {
30 return 1;
31 }
32
33 static int
34 main_visibility_check ()
35 {
36 return visibility_funptr () != visibility;
37 }
38 #else
39 static int
40 main_visibility_check ()
41 {
42 return visibility_funptr () == visibility;
43 }
44 #endif
45
46 /* This function is called by the shared library. */
47
48 int
49 main_called ()
50 {
51 return 6;
52 }
53
54 /* This function overrides a function in the shared library. */
55
56 int
57 shlib_overriddencall2 ()
58 {
59 return 8;
60 }
61
62 int
63 main ()
64 {
65 int (*p) ();
66
67 printf ("mainvar == %d\n", mainvar);
68 printf ("overriddenvar == %d\n", overriddenvar);
69 printf ("shlibvar1 == %d\n", shlibvar1);
70 #ifndef XCOFF_TEST
71 printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
72 printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
73 #endif
74 printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
75 printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
76 printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
77 #ifndef XCOFF_TEST
78 printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
79 printf ("shlib_maincall () == %d\n", shlib_maincall ());
80 #endif
81 printf ("main_called () == %d\n", main_called ());
82 printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
83 shlib_checkfunptr1 (shlib_shlibvar1));
84 #ifndef XCOFF_TEST
85 printf ("shlib_checkfunptr2 (main_called) == %d\n",
86 shlib_checkfunptr2 (main_called));
87 #endif
88 p = shlib_getfunptr1 ();
89 printf ("shlib_getfunptr1 () ");
90 if (p == shlib_shlibvar1)
91 printf ("==");
92 else
93 printf ("!=");
94 printf (" shlib_shlibvar1\n");
95 #ifndef XCOFF_TEST
96 p = shlib_getfunptr2 ();
97 printf ("shlib_getfunptr2 () ");
98 if (p == main_called)
99 printf ("==");
100 else
101 printf ("!=");
102 printf (" main_called\n");
103 #endif
104 printf ("shlib_check () == %d\n", shlib_check ());
105 printf ("visibility_check () == %d\n", visibility_check ());
106 printf ("visibility_checkfunptr () == %d\n",
107 visibility_checkfunptr ());
108 printf ("main_visibility_check () == %d\n", main_visibility_check ());
109 return 0;
110 }
This page took 0.032771 seconds and 4 git commands to generate.