From e3cc6c585a15fe4478dd2312bf5d390896729a31 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 22 Oct 2026 13:46:40 +0000 Subject: 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 --- tests/iii/extern-struct-rejected/program.cps | 1 + 1 file changed, 1 insertion(+) (limited to 'tests/iii/extern-struct-rejected/program.cps') 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 -- cgit v1.3.1-4-g156e