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) \