blob: 2204969d12e5ac141615ed741290cd7d056f6df1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// C library calls through EXTERN, including variadic promotions.
INCLUDE_OBJ "__libc"
TYPE CFloat = C_TYPE("float")
TYPE CShort = C_TYPE("short")
EXTERN "C" EXTERN_FUNCTION printf(C_STRING, ...) RETURNS C_INT
EXTERN "C" EXTERN_FUNCTION puts(C_STRING) RETURNS C_INT
EXTERN "C" EXTERN_FUNCTION abs(C_INT) RETURNS C_INT
EXTERN "C" EXTERN_FUNCTION sqrt(C_DOUBLE) RETURNS C_DOUBLE
TYPE CUnsigned = C_TYPE("unsigned int")
EXTERN "C" EXTERN_PROCEDURE srand(CUnsigned)
CALL srand((CUnsigned)1)
DECLARE Count : C_INT
CALL puts((C_STRING)"hello")
OUTPUT abs((C_INT)-5)
OUTPUT sqrt((C_DOUBLE)16)
Count <- printf((C_STRING)"%d %s %.1f %d|", (C_INT)42, (C_STRING)"x", (CFloat)1.5, (CShort)-7)
OUTPUT ""
OUTPUT Count
|