4a4131593514904befe95bdb7aa1945052638100
[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 #endif
33
34 static int
35 main_visibility_check ()
36 {
37 return visibility_funptr () == visibility;
38 }
39
40 /* This function is called by the shared library. */
41
42 int
43 main_called ()
44 {
45 return 6;
46 }
47
48 /* This function overrides a function in the shared library. */
49
50 int
51 shlib_overriddencall2 ()
52 {
53 return 8;
54 }
55
56 int
57 main ()
58 {
59 int (*p) ();
60
61 printf ("mainvar == %d\n", mainvar);
62 printf ("overriddenvar == %d\n", overriddenvar);
63 printf ("shlibvar1 == %d\n", shlibvar1);
64 #ifndef XCOFF_TEST
65 printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
66 printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
67 #endif
68 printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
69 printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
70 printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
71 #ifndef XCOFF_TEST
72 printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
73 printf ("shlib_maincall () == %d\n", shlib_maincall ());
74 #endif
75 printf ("main_called () == %d\n", main_called ());
76 printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
77 shlib_checkfunptr1 (shlib_shlibvar1));
78 #ifndef XCOFF_TEST
79 printf ("shlib_checkfunptr2 (main_called) == %d\n",
80 shlib_checkfunptr2 (main_called));
81 #endif
82 p = shlib_getfunptr1 ();
83 printf ("shlib_getfunptr1 () ");
84 if (p == shlib_shlibvar1)
85 printf ("==");
86 else
87 printf ("!=");
88 printf (" shlib_shlibvar1\n");
89 #ifndef XCOFF_TEST
90 p = shlib_getfunptr2 ();
91 printf ("shlib_getfunptr2 () ");
92 if (p == main_called)
93 printf ("==");
94 else
95 printf ("!=");
96 printf (" main_called\n");
97 #endif
98 printf ("shlib_check () == %d\n", shlib_check ());
99 printf ("visibility_check () == %d\n", visibility_check ());
100 printf ("visibility_checkfunptr () == %d\n",
101 visibility_checkfunptr ());
102 printf ("main_visibility_check () == %d\n", main_visibility_check ());
103 return 0;
104 }
This page took 0.034428 seconds and 4 git commands to generate.