aboutsummaryrefslogtreecommitdiff
path: root/tests/i/extern-c-variadic/program.cps
blob: 2f2ea43111d898c5f2d30681eee064acad4863d8 (plain)
1
2
3
4
5
6
7
8
9
10
11

// Variadic EXTERN arguments arrive with C default promotions applied.
INCLUDE_OBJ "lib.o"
TYPE UChar = C_TYPE("unsigned char")
TYPE CShort = C_TYPE("short")
TYPE UShort = C_TYPE("unsigned short")
TYPE CBool = C_TYPE("_Bool")
TYPE CFloat = C_TYPE("float")
EXTERN "C" EXTERN_FUNCTION sum_ints(C_INT, ...) RETURNS C_INT
EXTERN "C" EXTERN_FUNCTION sum_doubles(C_INT, ...) RETURNS C_DOUBLE
OUTPUT sum_ints((C_INT)5, (UChar)200, (CShort)-7, (UShort)65535, (CBool)TRUE, (C_CHAR)'A')
OUTPUT sum_doubles((C_INT)2, (CFloat)1.5, (C_DOUBLE)2.25)