| Age | Commit message (Collapse) | Author |
|
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>
|
|
A pseudocode pointer type now counts as a C type, in EXTERN signatures
and as a C-struct field, when it finally points to a non-void C type or a
C struct, as in TYPE PInt = ^C_INT. A pointer cycle such as TYPE P = ^P
and a pointer to a pseudocode type stay rejected.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Pointer types to C-struct records now pass unchanged as variadic EXTERN
arguments. Pseudocode values still need a cast to a C type, and records
by value stay rejected.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|