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/i/extern-c-struct/lib.c | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tests/i/extern-c-struct/lib.c (limited to 'tests/i/extern-c-struct/lib.c') diff --git a/tests/i/extern-c-struct/lib.c b/tests/i/extern-c-struct/lib.c new file mode 100644 index 0000000..39380ec --- /dev/null +++ b/tests/i/extern-c-struct/lib.c @@ -0,0 +1,11 @@ +struct Sample { + char tag; + double value; + int count; +}; + +static struct Sample shared = {'G', 0.5, 7}; + +void scale_sample(struct Sample *s, int k) { s->value *= k; } +struct Sample *shared_sample(void) { return &shared; } +int shared_count(void) { return shared.count; } -- cgit v1.3.1-4-g156e