diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-22 13:59:48 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-22 13:59:48 +0000 |
| commit | f694cc443ccc17a494cd195151882ab5e491bbb2 (patch) | |
| tree | 4a74ec68a1406073c5d70d8a0a71b5d839e0c3ef /tests/i/extern-c-struct/program.cps | |
| parent | 312a19c781da1c31ff1e3dc71c319663a8be9148 (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.cps | 1 |
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) |
