aboutsummaryrefslogtreecommitdiff
path: root/tests/i/extern-c-object/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-17 15:56:41 +0000
committer_ov4 <ov4@ov4.org>2026-10-17 15:56:41 +0000
commit567d1c932284bdd53c60937ff6f4ce4a63d104bf (patch)
tree7d303ca345ba9de3398275830b22a25b37f81337 /tests/i/extern-c-object/program.cps
parentd953e2acec913027c49520f2db5aa6d8b55e9fba (diff)
test(extern): call functions from a user C object
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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")