mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
ce85242084
The new head plumbing class after the symbol-kind fix: `conflicting types for func_80175414` (27 member-rows). Byte-true DEF is `void func_80175414(s32 _arg0)` (its DEFINE_ macro). The fleet declared it 1,845 times in four spellings, of which three are the SAME TYPE (parameter names do not participate) — the outlier was 28 sites declaring `(void)`. conform_decls REFUSED the naive conform and was right to: 29 ZERO-ARG CALL SITES exist across 28 files, so conforming the declaration alone turns each into `too few arguments` — a fleet-wide COMPILE break the per-binary gate cannot see (the tool cites 138/140 binaries, measured). It named the count, the consequence, why the cheap check misses it, and the flag that repairs it, then forced the two-step: --cast-zero-arg-calls (29 sites cast to the 0-arg fn-ptr shape, §17a-1 — gcc folds the cast of a known symbol to a direct jal, so it is codegen-neutral), then the conform. Result: 1,845 declaration sites rewritten across 1,061 files, 0 non-canonical remaining (axis complete, R32). R22 clean-fleet: check-all 213 passed / 0 failed of 213. WORTH RECORDING AS A TOOLCHAIN STANDARD: this is the instrument that has not wasted a cycle today. Every other one reported SUCCESS over a defect — a classifier that discarded every gcc-2.7.2 hard error (no `error:` prefix), a diff that miscounted 116 data-bundled .s files, a --verified-out truncated to zero bytes over 62 real banks, a --band default that reported "0 families" on a real 135-member family, and a scope stamp describing the filesystem instead of the run. conform_decls reports FAILURE with a repair path. A guard must state its COVERAGE, not just its verdict; the in-repo exemplars are this tool and the §53 jr interlock.