89d2faa86186bad307f093583fc4c0a09195c923
[platform/upstream/gcc.git] / gcc / testsuite / gcc.dg / compat / fp-struct-test-by-value-y.h
1 #define TEST(TYPE,TYPE2)                                        \
2 extern TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE;         \
3 extern TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE;         \
4 extern TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE;      \
5 extern TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE;     \
6                                                                 \
7 extern void check##TYPE (TYPE x, TYPE2 y);                      \
8                                                                 \
9 void                                                            \
10 checkg##TYPE (void)                                             \
11 {                                                               \
12   check##TYPE (  g1s##TYPE,  (TYPE2)1);                         \
13   check##TYPE (  g2s##TYPE,  (TYPE2)2);                         \
14   check##TYPE (  g3s##TYPE,  (TYPE2)3);                         \
15   check##TYPE (  g4s##TYPE,  (TYPE2)4);                         \
16   check##TYPE (  g5s##TYPE,  (TYPE2)5);                         \
17   check##TYPE (  g6s##TYPE,  (TYPE2)6);                         \
18   check##TYPE (  g7s##TYPE,  (TYPE2)7);                         \
19   check##TYPE (  g8s##TYPE,  (TYPE2)8);                         \
20   check##TYPE (  g9s##TYPE,  (TYPE2)9);                         \
21   check##TYPE ( g10s##TYPE, (TYPE2)10);                         \
22   check##TYPE ( g11s##TYPE, (TYPE2)11);                         \
23   check##TYPE ( g12s##TYPE, (TYPE2)12);                         \
24   check##TYPE ( g13s##TYPE, (TYPE2)13);                         \
25   check##TYPE ( g14s##TYPE, (TYPE2)14);                         \
26   check##TYPE ( g15s##TYPE, (TYPE2)15);                         \
27   check##TYPE ( g16s##TYPE, (TYPE2)16);                         \
28 }                                                               \
29                                                                 \
30 void                                                            \
31 test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4,                 \
32             TYPE s5, TYPE s6, TYPE s7, TYPE s8,                 \
33             TYPE s9, TYPE s10, TYPE s11, TYPE s12,              \
34             TYPE s13, TYPE s14, TYPE s15, TYPE s16)             \
35 {                                                               \
36   DEBUG_DOT;                                                    \
37   check##TYPE (s1, (TYPE2)1);                                   \
38   DEBUG_DOT;                                                    \
39   check##TYPE (s2, (TYPE2)2);                                   \
40   DEBUG_DOT;                                                    \
41   check##TYPE (s3, (TYPE2)3);                                   \
42   DEBUG_DOT;                                                    \
43   check##TYPE (s4, (TYPE2)4);                                   \
44   DEBUG_DOT;                                                    \
45   check##TYPE (s5, (TYPE2)5);                                   \
46   DEBUG_DOT;                                                    \
47   check##TYPE (s6, (TYPE2)6);                                   \
48   DEBUG_DOT;                                                    \
49   check##TYPE (s7, (TYPE2)7);                                   \
50   DEBUG_DOT;                                                    \
51   check##TYPE (s8, (TYPE2)8);                                   \
52   DEBUG_DOT;                                                    \
53   check##TYPE (s9, (TYPE2)9);                                   \
54   DEBUG_DOT;                                                    \
55   check##TYPE (s10, (TYPE2)10);                                 \
56   DEBUG_DOT;                                                    \
57   check##TYPE (s11, (TYPE2)11);                                 \
58   DEBUG_DOT;                                                    \
59   check##TYPE (s12, (TYPE2)12);                                 \
60   DEBUG_DOT;                                                    \
61   check##TYPE (s13, (TYPE2)13);                                 \
62   DEBUG_DOT;                                                    \
63   check##TYPE (s14, (TYPE2)14);                                 \
64   DEBUG_DOT;                                                    \
65   check##TYPE (s15, (TYPE2)15);                                 \
66   DEBUG_DOT;                                                    \
67   check##TYPE (s16, (TYPE2)16);                                 \
68 }                                                               \
69                                                                 \
70 void                                                            \
71 testva##TYPE (int n, ...)                                       \
72 {                                                               \
73   int i;                                                        \
74   va_list ap;                                                   \
75   if (test_va)                                                  \
76     {                                                           \
77       va_start (ap, n);                                         \
78       for (i = 0; i < n; i++)                                   \
79         {                                                       \
80           TYPE t = va_arg (ap, TYPE);                           \
81           DEBUG_DOT;                                            \
82           check##TYPE (t, (TYPE2)i+1);                          \
83         }                                                       \
84       va_end (ap);                                              \
85     }                                                           \
86 }