1 /* C99 6.5.2.2 Function calls.
2 Test passing varargs of the combination of decimal float types and
8 /* Supposing the list of varying number of arguments is:
9 unsigned int, _Decimal128, double, _Decimal32, _Decimal64. */
12 vararg_d32 (unsigned arg, ...)
19 va_arg (ap, unsigned int);
20 va_arg (ap, _Decimal128);
22 result = va_arg (ap, _Decimal32);
29 vararg_d64 (unsigned arg, ...)
36 va_arg (ap, unsigned int);
37 va_arg (ap, _Decimal128);
39 va_arg (ap, _Decimal32);
40 result = va_arg (ap, _Decimal64);
47 vararg_d128 (unsigned arg, ...)
54 va_arg (ap, unsigned int);
55 result = va_arg (ap, _Decimal128);
62 vararg_int (unsigned arg, ...)
69 result = va_arg (ap, unsigned int);
76 vararg_double (unsigned arg, ...)
83 va_arg (ap, unsigned int);
84 va_arg (ap, _Decimal128);
85 result = va_arg (ap, double);
95 if (vararg_d32 (3, 0, 1.0dl, 2.0, 3.0df, 4.0dd) != 3.0df) FAILURE
96 if (vararg_d64 (4, 0, 1.0dl, 2.0, 3.0df, 4.0dd) != 4.0dd) FAILURE
97 if (vararg_d128 (1, 0, 1.0dl, 2.0, 3.0df, 4.0dd) != 1.0dl) FAILURE
98 if (vararg_int (0, 0, 1.0dl, 2.0, 3.0df, 4.0dd) != 0) FAILURE
99 if (vararg_double (2, 0, 1.0dl, 2.0, 3.0df, 4.0dd) != 2.0) FAILURE