2 /* { dg-options "-std=gnu99 -Wall" } */
4 /* C99 6.5.2.2 Function calls.
5 Test scalar passing and return values involving decimal floating
8 extern void abort (void);
10 /* A handful of functions that return their Nth _Decimal32
11 argument with mixed types in parameter list. */
14 arg0_32 (_Decimal32 arg0, int arg1, unsigned int arg2,
15 float arg3, double arg4, long double arg5)
21 arg1_32 (int arg0, _Decimal32 arg1, unsigned int arg2,
22 float arg3, double arg4, long double arg5)
28 arg2_32 (int arg0, unsigned int arg1, _Decimal32 arg2,
29 float arg3, double arg4, long double arg5)
36 arg3_32 (int arg0, unsigned int arg1, float arg2,
37 _Decimal32 arg3, double arg4, long double arg5)
43 arg4_32 (int arg0, unsigned int arg1, float arg2,
44 double arg3, _Decimal32 arg4, long double arg5)
50 arg5_32 (int arg0, unsigned int arg1, float arg2,
51 double arg3, long double arg4, _Decimal32 arg5)
56 /* A handful of functions that return their Nth _Decimal64
57 argument with mixed types in parameter list. */
60 arg0_64 (_Decimal64 arg0, int arg1, unsigned int arg2,
61 float arg3, double arg4, long double arg5)
67 arg1_64 (int arg0, _Decimal64 arg1, unsigned int arg2,
68 float arg3, double arg4, long double arg5)
74 arg2_64 (int arg0, unsigned int arg1, _Decimal64 arg2,
75 float arg3, double arg4, long double arg5)
81 arg3_64 (int arg0, unsigned int arg1, float arg2,
82 _Decimal64 arg3, double arg4, long double arg5)
88 arg4_64 (int arg0, unsigned int arg1, float arg2,
89 float arg3, _Decimal64 arg4, long double arg5)
95 arg5_64 (int arg0, unsigned int arg1, float arg2,
96 double arg3, long double arg4, _Decimal64 arg5)
101 /* A handful of functions that return their Nth _Decimal128
102 argument with mixed types in parameter list. */
105 arg0_128 (_Decimal128 arg0, int arg1, unsigned int arg2,
106 float arg3, double arg4, long double arg5)
111 arg1_128 (int arg0, _Decimal128 arg1, unsigned int arg2,
112 float arg3, double arg4, long double arg5)
118 arg2_128 (int arg0, unsigned int arg1, _Decimal128 arg2,
119 float arg3, double arg4, long double arg5)
125 arg3_128 (int arg0, unsigned int arg1, float arg2,
126 _Decimal128 arg3, double arg4, long double arg5)
132 arg4_128 (int arg0, unsigned int arg1, float arg2,
133 float arg3, _Decimal32 arg4, long double arg5)
139 arg5_128 (int arg0, unsigned int arg1, float arg2,
140 double arg3, long double arg4, _Decimal128 arg5)
150 /* _Decimal32 variants. */
151 if (arg0_32 (0.0df, -1, 2, 3.0f, 4.0, 5.0ld) != 0.0df) abort ();
152 if (arg1_32 (0, 1.0df, 2, 3.0f, 4.0, 5.0ld) != 1.0df) abort ();
153 if (arg2_32 (0, -1, 2.0df, 3.0f, 4.0, 5.0ld) != 2.0df) abort ();
154 if (arg3_32 (0, -1, 2.0f, 3.0df, 4.0, 5.0ld) != 3.0df) abort ();
155 if (arg4_32 (0, -1, 2.0f, 3.0, 4.0df, 5.0ld) != 4.0df) abort ();
156 if (arg5_32 (0, -1, 2.0f, 3.0, 4.0ld, 5.0df) != 5.0df) abort ();
158 /* _Decimal64 variants. */
159 if (arg0_64 (0.0dd, -1, 2, 3.0f, 4.0, 5.0ld) != 0.0dd) abort ();
160 if (arg1_64 (0, 1.0dd, 2, 3.0f, 4.0, 5.0ld) != 1.0dd) abort ();
161 if (arg2_64 (0, -1, 2.0dd, 3.0f, 4.0, 5.0ld) != 2.0dd) abort ();
162 if (arg3_64 (0, -1, 2.0f, 3.0dd, 4.0, 5.0ld) != 3.0dd) abort ();
163 if (arg4_64 (0, -1, 2.0f, 3.0, 4.0dd, 5.0ld) != 4.0dd) abort ();
164 if (arg5_64 (0, -1, 2.0f, 3.0, 4.0ld, 5.0dd) != 5.0dd) abort ();
166 /* _Decimal128 variants. */
167 if (arg0_128 (0.0dl, -1, 2, 3.0f, 4.0, 5.0ld) != 0.0dl) abort ();
168 if (arg1_128 (0, 1.0dl, 2, 3.0f, 4.0, 5.0ld) != 1.0dl) abort ();
169 if (arg2_128 (0, -1, 2.0dl, 3.0f, 4.0, 5.0ld) != 2.0dl) abort ();
170 if (arg3_128 (0, -1, 2.0f, 3.0dl, 4.0, 5.0ld) != 3.0dl) abort ();
171 if (arg4_128 (0, -1, 2.0f, 3.0, 4.0dl, 5.0ld) != 4.0dl) abort ();
172 if (arg5_128 (0, -1, 2.0f, 3.0, 4.0ld, 5.0dl) != 5.0dl) abort ();