(root)/
gcc-13.2.0/
gcc/
testsuite/
gfortran.dg/
bind_c_coms_driver.c
       1  double fabs(double);
       2  
       3  void test_coms(void);
       4  
       5  extern void abort(void);
       6  
       7  struct {double r, s; } com;     /* refers to the common block "com" */
       8  double single;                  /* refers to the common block "single" */
       9  long int mycom;                 /* refers to the common block "MYCOM" */
      10  long long int mycom2;           /* refers to the common block "MYCOM2" */
      11  struct {int i, j; } f03_com2;   /* refers to the common block "com2" */
      12  
      13  int main(int argc, char **argv)
      14  {
      15    com.r = 1.0;
      16    com.s = 2.0;
      17    single = 1.0;
      18    mycom = 1;
      19    mycom2 = 2;
      20    f03_com2.i = 1;
      21    f03_com2.j = 2;
      22  
      23    /* change the common block variables in F90 */
      24    test_coms();
      25  
      26    if(fabs(com.r - 1.1) > 0.00000000)
      27      abort();
      28    if(fabs(com.s - 2.1) > 0.00000000)
      29      abort();
      30    if(fabs(single - 1.1) > 0.00000000)
      31      abort();
      32    if(mycom != 2)
      33      abort();
      34    if(mycom2 != 3)
      35      abort();
      36    if(f03_com2.i != 2)
      37      abort();
      38    if(f03_com2.j != 3)
      39      abort();
      40    
      41    return 0;
      42  }/* end main() */