wcc: drop @test fns from non-T builds, both stages (harec check.c:3941)

Splice @test N_FNDECLs out of the unit after the body-check passes,
mirroring harec's checked-but-not-emitted: a broken @test body still
errors loudly in non-T; @test-free units are emission-unchanged.
910/997 table rows pin keep/test x non-T/-T, head+consecutive unlink,
undef-body reject, and plain-calls-dropped loud link-fail. w6c+wwdump
combined.ww regen. (#6-team)
This commit is contained in:
2026-06-10 22:20:15 +09:00
parent 7470b1a5c3
commit 08a76cf4c8
10 changed files with 442 additions and 4 deletions

View File

@@ -292,8 +292,8 @@ check_one(const char *bin, const char *cwd, const struct ent *e, int idx)
snprintf(cs, sizeof cs, "%s/c.s", td);
snprintf(ws, sizeof ws, "%s/w.s", td);
/* Fixtures are main-less @test files: -T synthesizes the entry and
* keeps the @test fns symmetrically (non-T drops them cstage-side,
* task #6, so byte-id needs -T). Import-probes carry their own
* keeps the @test fns symmetrically (non-T drops them on both stages,
* #6, so byte-id needs -T). Import-probes carry their own
* `fn main()`, which -T loud-rejects (910), so they stay non-T. */
const char *tflag = e->fixture ? "-T " : "";
snprintf(cmd, sizeof cmd, "timeout 180 %s/w6c %s%s > %s 2>/dev/null",