mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
f206659dcf
- NEW "recovered" stage between raw and reconciled: cast_call_sites + reconcile_decls run against THIS sibling's TU. The recovery must be redone per sibling because the conflicting symbols are largely PER-OVERLAY (D_801812A4 in ov_SC01_000 vs D_800D4F8C in ov_SC01_077), so the exemplar's recovered decls do not transfer through the remap. - The stage loop no longer aborts a sibling when a stage cannot PRODUCE a candidate. It skips to the next one. canon_sig_reconcile raises on a K&R definition (it expects an ANSI signature), and a K&R def is MANDATORY whenever a zero-arg engine_core.h thunk calls the function (func_8015AE2C) — so that must not kill the bank. - gate-fail now reports the last stage error instead of an empty string. STATUS (P9): the func_8015AE2C x133 sweep is still BLOCKED and this commit does not close it. Remaining blocker, precisely diagnosed: the remapped body's DATA externs conflict with the sibling's §8b carried decl layer (which carries the macro externs of earlier regions and faithfully reproduces the original TU's declaration environment). reconcile_decls resolves against a FLEET-MAJORITY canonical oracle, not against the TU's actually-visible decl, so it picks a type that still conflicts. Fix direction: reconcile the body's externs against the TU's carried layer (authoritative) — or drop body externs the layer already provides and cast at use. The exemplar itself is banked and green.