aboutsummaryrefslogtreecommitdiff
path: root/tests/i/extern-c-object/program.cps
diff options
context:
space:
mode:
Diffstat (limited to 'tests/i/extern-c-object/program.cps')
-rw-r--r--tests/i/extern-c-object/program.cps13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/i/extern-c-object/program.cps b/tests/i/extern-c-object/program.cps
new file mode 100644
index 0000000..5ac34ec
--- /dev/null
+++ b/tests/i/extern-c-object/program.cps
@@ -0,0 +1,13 @@
+// Functions from a user C object built with the host C compiler.
+INCLUDE_OBJ "lib.o"
+EXTERN "C" EXTERN_FUNCTION add3(C_INT, C_INT, C_INT) RETURNS C_INT
+EXTERN "C" EXTERN_FUNCTION scale(C_DOUBLE, C_INT) RETURNS C_DOUBLE
+EXTERN "C" EXTERN_FUNCTION name_length(C_STRING) RETURNS C_INT
+EXTERN "C" EXTERN_FUNCTION next_call() RETURNS C_INT
+EXTERN "C" EXTERN_PROCEDURE say(C_STRING)
+OUTPUT add3((C_INT)1, (C_INT)2, (C_INT)3)
+OUTPUT scale((C_DOUBLE)2.5, (C_INT)4)
+OUTPUT name_length((C_STRING)"cambridge")
+OUTPUT next_call()
+OUTPUT next_call()
+CALL say((C_STRING)"from lib.c")