1  #include <stdarg.h>
       2  
       3  #include "compat-common.h"
       4  
       5  typedef void (*fpi)(int);
       6  typedef void (*fpd)(double);
       7  
       8  extern int f1_val;
       9  extern void checki (int, int);
      10  
      11  void
      12  test1a (fpi f)
      13  {
      14    (*f)(1);
      15  }
      16  
      17  void
      18  test1b (fpi f, int i)
      19  {
      20    (*f)(i);
      21  }
      22  
      23  void
      24  test1c (double x, fpd f)
      25  {
      26    (*f)(x);
      27  }
      28  
      29  void
      30  test2a (fpi f1, fpd f2)
      31  {
      32    (*f1)(10);
      33    (*f2)(10.0);
      34  }
      35  
      36  void
      37  test2b (fpi f1, fpd f2, int i)
      38  {
      39    (*f1)(i);
      40    (*f2)((double)i);
      41  }
      42  
      43  void
      44  test2c (fpi f1, int i, fpd f2)
      45  {
      46    (*f1)(i);
      47    (*f2)((double)i);
      48  }
      49  
      50  void
      51  test2d (int i, fpi f1, fpd f2)
      52  {
      53    (*f1)(i);
      54    (*f2)((double)i);
      55  }
      56  
      57  void
      58  test2e (fpi f1, fpd f2, int i, double x)
      59  {
      60    (*f1)(i);
      61    (*f2)(x);
      62  }
      63  
      64  void
      65  test2f (fpi f1, int i, fpd f2, double x)
      66  {
      67    (*f1)(i);
      68    (*f2)(x);
      69  }
      70  
      71  void
      72  test2g (fpi f1, int i, double x, fpd f2)
      73  {
      74    (*f1)(i);
      75    (*f2)(x);
      76  }
      77  
      78  void
      79  test2h (double x, fpd f1, fpi f2, int i)
      80  {
      81    (*f1)(x);
      82    (*f2)(i);
      83  }
      84  
      85  void
      86  test2i (double x, fpd f1, int i, fpi f2)
      87  {
      88    (*f1)(x);
      89    (*f2)(i);
      90  }
      91  
      92  void
      93  test2j (int i, double x, fpi f1, fpd f2)
      94  {
      95    (*f1)(i);
      96    (*f2)(x);
      97  }
      98  
      99  void
     100  testva (int n, ...)
     101  {
     102    int i;
     103    va_list ap;
     104    va_start (ap, n);
     105    for (i = 0; i < n; i++)
     106      {
     107        fpi fp = va_arg (ap, fpi);
     108        (*fp)(i);
     109        checki (f1_val, i);
     110      }
     111  }