2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.dg / compat / fnptr-by-value-1_y.c
blob1f6917cdcba00a2329c68b0f44acf85ca4ad6fed
1 #include <stdarg.h>
3 #include "compat-common.h"
5 typedef void (*fpi)(int);
6 typedef void (*fpd)(double);
8 extern int f1_val;
9 extern void checki (int, int);
11 void
12 test1a (fpi f)
14 (*f)(1);
17 void
18 test1b (fpi f, int i)
20 (*f)(i);
23 void
24 test1c (double x, fpd f)
26 (*f)(x);
29 void
30 test2a (fpi f1, fpd f2)
32 (*f1)(10);
33 (*f2)(10.0);
36 void
37 test2b (fpi f1, fpd f2, int i)
39 (*f1)(i);
40 (*f2)((double)i);
43 void
44 test2c (fpi f1, int i, fpd f2)
46 (*f1)(i);
47 (*f2)((double)i);
50 void
51 test2d (int i, fpi f1, fpd f2)
53 (*f1)(i);
54 (*f2)((double)i);
57 void
58 test2e (fpi f1, fpd f2, int i, double x)
60 (*f1)(i);
61 (*f2)(x);
64 void
65 test2f (fpi f1, int i, fpd f2, double x)
67 (*f1)(i);
68 (*f2)(x);
71 void
72 test2g (fpi f1, int i, double x, fpd f2)
74 (*f1)(i);
75 (*f2)(x);
78 void
79 test2h (double x, fpd f1, fpi f2, int i)
81 (*f1)(x);
82 (*f2)(i);
85 void
86 test2i (double x, fpd f1, int i, fpi f2)
88 (*f1)(x);
89 (*f2)(i);
92 void
93 test2j (int i, double x, fpi f1, fpd f2)
95 (*f1)(i);
96 (*f2)(x);
99 void
100 testva (int n, ...)
102 int i;
103 va_list ap;
104 va_start (ap, n);
105 for (i = 0; i < n; i++)
107 fpi fp = va_arg (ap, fpi);
108 (*fp)(i);
109 checki (f1_val, i);