cgen: peel *fn field types for local struct-field callees
fnptrcalleetfn's N_DOT arm accepted only a bare N_TFN field tnode, so a call through a field declared `cb: *fn(...)` missed, fell through to the name registry, and emitted CALL cb(SB) — an undefined symbol (loud at link; cstage calls the stamped ptr-to-fn indirectly). Same TPTR peel the N_IDENT arm already had. Fixture fnptrfield_call covers the by-value and via-pointer shapes; corpus pin 1478/2956.
This commit is contained in:
@@ -32,9 +32,9 @@ categories out of the ordinary developer target.
|
||||
| Fixed point and self-host | `test-bootstrap` |
|
||||
| Host linker/platform behavior | `test-platform` |
|
||||
|
||||
The live declarative compiler corpus has 1,477 fixtures and 2,954 C/WW cells:
|
||||
The live declarative compiler corpus has 1,478 fixtures and 2,956 C/WW cells:
|
||||
335 expected rejections (311 shared and 24 stage-specific), 17 compile-only
|
||||
successes, 191 exit-zero programs, and 934 explicit-exit programs.
|
||||
successes, 191 exit-zero programs, and 935 explicit-exit programs.
|
||||
|
||||
147 native C carriers remain. They are partitioned exactly once as five
|
||||
in-process units, 24 byte/artifact gates, six bootstrap gates, one platform
|
||||
|
||||
Reference in New Issue
Block a user