2 /* { dg-options "-std=gnu99" } */
4 /* C99 6.5.2.2 Function calls.
5 Test passing varargs of fixed-point types.
6 Based on the test from ../dfp/. */
10 extern void abort (void);
12 #define FUNC(TYPE, NAME) \
14 vararg_ ## NAME (unsigned arg, ...) \
20 for (i = 0; i <= arg; i++) \
21 result = va_arg (ap, TYPE); \
26 FUNC (short _Fract, sf)
28 FUNC (long _Fract, lf)
29 FUNC (long long _Fract, llf)
30 FUNC (unsigned short _Fract, usf)
31 FUNC (unsigned _Fract, uf)
32 FUNC (unsigned long _Fract, ulf)
33 FUNC (unsigned long long _Fract, ullf)
34 FUNC (_Sat short _Fract, Ssf)
35 FUNC (_Sat _Fract, Sf)
36 FUNC (_Sat long _Fract, Slf)
37 FUNC (_Sat long long _Fract, Sllf)
38 FUNC (_Sat unsigned short _Fract, Susf)
39 FUNC (_Sat unsigned _Fract, Suf)
40 FUNC (_Sat unsigned long _Fract, Sulf)
41 FUNC (_Sat unsigned long long _Fract, Sullf)
42 FUNC (short _Accum, sa)
44 FUNC (long _Accum, la)
45 FUNC (long long _Accum, lla)
46 FUNC (unsigned short _Accum, usa)
47 FUNC (unsigned _Accum, ua)
48 FUNC (unsigned long _Accum, ula)
49 FUNC (unsigned long long _Accum, ulla)
50 FUNC (_Sat short _Accum, Ssa)
51 FUNC (_Sat _Accum, Sa)
52 FUNC (_Sat long _Accum, Sla)
53 FUNC (_Sat long long _Accum, Slla)
54 FUNC (_Sat unsigned short _Accum, Susa)
55 FUNC (_Sat unsigned _Accum, Sua)
56 FUNC (_Sat unsigned long _Accum, Sula)
57 FUNC (_Sat unsigned long long _Accum, Sulla)
61 #define TEST(NAME,PF) \
62 if (vararg_ ## NAME (0, 0.0 ## PF, 0.1 ## PF, 0.2 ## PF, 0.3 ## PF, \
63 0.4 ## PF, 0.5 ## PF) != 0.0 ## PF) \
65 if (vararg_ ## NAME (1, 0.0 ## PF, 0.1 ## PF, 0.2 ## PF, 0.3 ## PF, \
66 0.4 ## PF, 0.5 ## PF) != 0.1 ## PF) \
68 if (vararg_ ## NAME (2, 0.0 ## PF, 0.1 ## PF, 0.2 ## PF, 0.3 ## PF, \
69 0.4 ## PF, 0.5 ## PF) != 0.2 ## PF) \
71 if (vararg_ ## NAME (3, 0.0 ## PF, 0.1 ## PF, 0.2 ## PF, 0.3 ## PF, \
72 0.4 ## PF, 0.5 ## PF) != 0.3 ## PF) \
74 if (vararg_ ## NAME (4, 0.0 ## PF, 0.1 ## PF, 0.2 ## PF, 0.3 ## PF, \
75 0.4 ## PF, 0.5 ## PF) != 0.4 ## PF) \
77 if (vararg_ ## NAME (5, 0.0 ## PF, 0.1 ## PF, 0.2 ## PF, 0.3 ## PF, \
78 0.4 ## PF, 0.5 ## PF) != 0.5 ## PF) \