mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
fix(phase-29): engine_core.h — func_80144B14 declared int(int), not void(void)
The ARITY blocker did not apply: DEFINE_func_* does not CALL func_80144B14, it takes its ADDRESS (`*(s32 *)((s32)a0 + 0xDC) = (s32)&func_80144B14;`). There is no call site to break, so the FULL correction is available rather than the §99 no-prototype workaround. That is a refinement the audit needs: the ARITY precondition asks whether the macro's own call site would break, but an address-taken use has no call site. Over-fires on that shape. §85: 0 consumers, so the void->int return widening is byte-neutral. Verified in two steps (T48 discipline): header change ALONE, no src change, R22 clean-fleet 140 passed, 0 failed of 140. Fleet-shared (§61/§63), R22 mandatory. Probe target switched from func_8013BD34 on measured evidence: that one's definition lives in ov_SC07_010_o0.c, and _o0 families sweep ~1/137, making it a poor test of an unproven technique. func_80144B14 is the same class, 137 stubs, not -O0, with a real 34x137 family.
This commit is contained in:
@@ -2439,7 +2439,7 @@
|
||||
}
|
||||
|
||||
#define DEFINE_func_80144AEC() \
|
||||
extern void func_80144B14(void); \
|
||||
extern int func_80144B14(int param_1); \
|
||||
void func_80144AEC(s32 *a0) { \
|
||||
s32 old; \
|
||||
old = *(s32 *)((s32)a0 + 0xDC); \
|
||||
|
||||
Reference in New Issue
Block a user