A void (size-0) error-singleton type-name used as a VALUE (return / let-init / assign / call-arg) all share the N_IDENT non-local global-value load; the load emitted MOVQ main.<singleton>(SB),AX for a payload symbol that never exists → w6l undefined reference. Guard TY_VOID && !let && !def at the non-local fallthrough so nothing is emitted; the enclosing widen arm stamps the variant tag. wwstage was already tag-only correct — this aligns cstage up to it. Pin test/wcc/949_void_error_singleton_run.c (6 rows, teeth = link-fail pre-fix). cgen-first blocker for the path::buffer arc (error.ha is all !void).
98 KiB
98 KiB