aboutsummaryrefslogtreecommitdiff
path: root/tests/i/extern-c-struct/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-22 13:59:48 +0000
committer_ov4 <ov4@ov4.org>2026-10-22 13:59:48 +0000
commitf694cc443ccc17a494cd195151882ab5e491bbb2 (patch)
tree4a74ec68a1406073c5d70d8a0a71b5d839e0c3ef /tests/i/extern-c-struct/program.cps
parent312a19c781da1c31ff1e3dc71c319663a8be9148 (diff)
feat(codegen): accept ^x of C values as variadic arguments
In a variadic EXTERN position, ^x now passes the address of x as a plain pointer when x has a C type or is a C struct, like C's f(n, &x). The address of a pseudocode-typed value keeps the "must be a C value" error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/i/extern-c-struct/program.cps')
-rw-r--r--tests/i/extern-c-struct/program.cps1
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/i/extern-c-struct/program.cps b/tests/i/extern-c-struct/program.cps
index 62370d3..210e10d 100644
--- a/tests/i/extern-c-struct/program.cps
+++ b/tests/i/extern-c-struct/program.cps
@@ -43,3 +43,4 @@ CALL bump_counter(^C)
OUTPUT N
CALL get_shared(^R)
OUTPUT R^.Tag, " ", R^.Count
+OUTPUT sum_counts((C_INT)2, ^S, P)