aboutsummaryrefslogtreecommitdiff
path: root/tests/iii/extern-struct-rejected/program.cps
blob: 80f965f67b42244e49dd30313e023a75defbaa8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

// Records cross the EXTERN boundary only as C structs.
INCLUDE_OBJ "__libc"
TYPE Person
    DECLARE Name : STRING
    DECLARE Age : C_INT
ENDTYPE
TYPE PPerson = ^Person
EXTERN "C" EXTERN_PROCEDURE puts(PPerson)
EXTERN "C" EXTERN_FUNCTION abs(Person) RETURNS C_INT
EXTERN "C" EXTERN_FUNCTION atoi(C_STRING) RETURNS Person
EXTERN "C" EXTERN_FUNCTION printf(C_STRING, ...) RETURNS C_INT
DECLARE Someone : Person
OUTPUT printf((C_STRING)"%d", Someone)
TYPE PInteger = ^INTEGER
EXTERN "C" EXTERN_PROCEDURE srand(PInteger)