This commit was generated by cvs2svn to track changes on a CVS vendor
[external/binutils.git] / ld / testsuite / ld-auto-import / client.c
1 #include <stdio.h>\r
2 \r
3 extern int var;\r
4 extern void (*func_ptr)(void);\r
5 extern void print_var (void);\r
6 extern void print_foo (void);\r
7 extern int foo;\r
8 extern int var2[2];\r
9 \r
10 typedef struct\r
11 {\r
12   int *   var;\r
13   void (* func_ptr)(void);\r
14 }\r
15 TEST;\r
16 \r
17 TEST xyz = { &var, print_var };\r
18 \r
19 int\r
20 main (void)\r
21 {\r
22   print_var ();\r
23 \r
24   printf ("We see var = %d\n", var);\r
25   printf ("Setting var = 456\n");\r
26 \r
27   var = 456;\r
28 \r
29   print_var ();\r
30   printf ("We see var = %d\n\n", var);\r
31 \r
32   var = 90;\r
33   print_var ();\r
34   printf ("We see var = %d\n\n", var);\r
35 \r
36   print_foo ();\r
37   printf ("We see foo = %d\n", foo);\r
38   printf ("Setting foo = 19\n");\r
39   foo = 19;\r
40   print_foo ();\r
41   printf ("We see foo = %d\n\n", foo);\r
42   fflush (stdout);\r
43 \r
44   printf ("Calling dllimported function pointer\n");\r
45   func_ptr ();\r
46 \r
47   printf ("Calling functions using global structure\n"); \r
48   xyz.func_ptr ();\r
49   * xyz.var = 40;\r
50   xyz.func_ptr ();\r
51 \r
52   printf ("We see var2[0] = %d\n\n", var2[0]);\r
53 \r
54   return 0;\r
55 }\r