From df86fcce5078a190360c8f26d9b256da01aab1f0 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:23:14 -0600 Subject: [PATCH] =?UTF-8?q?fix(phase-29):=20engine=5Fcore.h=20=E2=80=94=20?= =?UTF-8?q?func=5F80144B14=20declared=20int(int),=20not=20void(void)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- src/shared/engine_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 700091ada..11bdd2371 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -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); \