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