annotate gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_y.c @ 158:494b0b89df80 default tip

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