mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
2f1aa8659d
STUCK SINCE SESSION-21, and conform_decls was RIGHT to refuse it: the byte-true signature takes a parameter while 138 zero-arg CALL SITES exist across 138 files, so conforming the declarations alone would turn every one into `too few arguments` — a fleet-wide compile break the per-binary gate cannot see. The tool printed the exact remedy in its refusal message and could not perform it, so the function sat blocked for two sessions. NEW --cast-zero-arg-calls: cast every 0-arg call site to ((s32 (*)(void))func_801789AC)() — gcc folds the cast of a known symbol to a direct jal, so caller bytes are unchanged — then re-run the conform normally. PLAN -> VALIDATE -> WRITE like the decl axis, because a partial cast set is itself a fleet-wide compile break. Not a macro this time (unlike func_8015B950's single shared site): 138 genuine per-overlay call sites, one each. VERIFIED IN STAGES, not all at once: the 138 casts ALONE are byte-neutral (d19c9580); then the 660-site declaration conform (axis complete, 0 remaining); then the gate -> verified 1 / failed 0; then R22 clean-fleet 140 passed / 0 failed of 140. Reach 138 x 91 ins = 12,558 templated instructions unlocked for the sweep.