aboutsummaryrefslogtreecommitdiff
path: root/tests/iii/extern-struct-rejected/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-22 13:46:40 +0000
committer_ov4 <ov4@ov4.org>2026-10-22 13:46:40 +0000
commite3cc6c585a15fe4478dd2312bf5d390896729a31 (patch)
tree1fbfbecd963d1d566c5d93d9c9cb3038b10fc89a /tests/iii/extern-struct-rejected/program.cps
parent3a6eb921b50e191468d29c233718657f9f85d68e (diff)
feat(codegen): return C-struct records by value
EXTERN_FUNCTION may now return a C-struct record by value, either through caller-supplied sret memory or as a coerced value stored back into the record, as clang arranges it. This removes the last by-value rejection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/iii/extern-struct-rejected/program.cps')
-rw-r--r--tests/iii/extern-struct-rejected/program.cps1
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/iii/extern-struct-rejected/program.cps b/tests/iii/extern-struct-rejected/program.cps
index eec88a1..8fd1fd9 100644
--- a/tests/iii/extern-struct-rejected/program.cps
+++ b/tests/iii/extern-struct-rejected/program.cps
@@ -7,4 +7,5 @@ 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
OUTPUT 1