From 4a70e44f06e637762eec0fd875eb94b84c3f4037 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 22 Oct 2026 13:27:15 +0000 Subject: feat(codegen): accept pointers to C-struct records in EXTERN signatures A TYPE record whose fields are all C types, C structs or pointer types to C structs now crosses the EXTERN "C" boundary through a pointer type. Records by value are rejected for now, and a pointer to a record with a non-C field names that field. Co-Authored-By: Claude Opus 5.5 --- tests/iii/extern-struct-rejected/notes.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/iii/extern-struct-rejected/notes.md (limited to 'tests/iii/extern-struct-rejected/notes.md') diff --git a/tests/iii/extern-struct-rejected/notes.md b/tests/iii/extern-struct-rejected/notes.md new file mode 100644 index 0000000..f33ef66 --- /dev/null +++ b/tests/iii/extern-struct-rejected/notes.md @@ -0,0 +1,5 @@ +# extern-struct-rejected + +Compiler extension: an EXTERN signature accepts a record only as a C struct (every field a C type, a C struct or a pointer type to one) and, for now, only through a pointer type. Person has a STRING field, so a pointer to it is rejected and the field is named. Point is a C struct, but passing it by value is not supported yet. + +Require exit 1 and each cause on its EXTERN line. -- cgit v1.3.1-4-g156e