1 /* This is the main program for the shared library test. */
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_check ();
22 extern int visibility_checkfunptr ();
23 extern void *visibility_funptr ();
24 extern int visibility_checkvar ();
25 extern int visibility_checkvarptr ();
26 extern int visibility_varval ();
27 extern void *visibility_varptr ();
29 #ifdef HIDDEN_WEAK_TEST
33 #ifdef PROTECTED_WEAK_TEST
37 #ifdef PROTECTED_UNDEF_TEST
38 #define PROTECTED_TEST
42 extern int visibility ();
43 extern int visibility_var;
46 #if !defined (HIDDEN_TEST) && defined (PROTECTED_TEST)
54 main_visibility_check ()
56 return visibility_funptr () != visibility;
59 int visibility_var = 1;
62 main_visibility_checkvar ()
64 return visibility_varval () != visibility_var
65 && visibility_varptr () != &visibility_var;
69 main_visibility_check ()
72 return visibility_funptr () == NULL;
74 return visibility_funptr () == visibility;
79 main_visibility_checkvar ()
82 return visibility_varval () == 0
83 && visibility_varptr () == NULL;
85 return visibility_varval () == visibility_var
86 && visibility_varptr () == &visibility_var;
91 /* This function is called by the shared library. */
99 /* This function overrides a function in the shared library. */
102 shlib_overriddencall2 ()
112 printf ("mainvar == %d\n", mainvar);
113 printf ("overriddenvar == %d\n", overriddenvar);
114 printf ("shlibvar1 == %d\n", shlibvar1);
116 printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
117 printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
119 printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
120 printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
121 printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
123 printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
124 printf ("shlib_maincall () == %d\n", shlib_maincall ());
126 printf ("main_called () == %d\n", main_called ());
127 printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
128 shlib_checkfunptr1 (shlib_shlibvar1));
130 printf ("shlib_checkfunptr2 (main_called) == %d\n",
131 shlib_checkfunptr2 (main_called));
133 p = shlib_getfunptr1 ();
134 printf ("shlib_getfunptr1 () ");
135 if (p == shlib_shlibvar1)
139 printf (" shlib_shlibvar1\n");
141 p = shlib_getfunptr2 ();
142 printf ("shlib_getfunptr2 () ");
143 if (p == main_called)
147 printf (" main_called\n");
149 printf ("shlib_check () == %d\n", shlib_check ());
150 printf ("visibility_check () == %d\n", visibility_check ());
151 printf ("visibility_checkfunptr () == %d\n",
152 visibility_checkfunptr ());
153 printf ("main_visibility_check () == %d\n", main_visibility_check ());
154 printf ("visibility_checkvar () == %d\n", visibility_checkvar ());
155 printf ("visibility_checkvarptr () == %d\n",
156 visibility_checkvarptr ());
157 printf ("main_visibility_checkvar () == %d\n",
158 main_visibility_checkvar ());