You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
AOT-safe UndefinedVariableJitHelper guards without broken LLVM bridge (#10360) #10524
Strategic pillar
Pillar 4 Correctness — UndefinedVariable guards (#10360), AOT-safe
Aligns with #10533 compiler excellence map.
Priority
P2 — after #10523 merged; do not block initial AOT/web gate restore
Problem
Forward-porting #10360 /
UndefinedVariableJitHelpercompiled LLVM bridge breaks examples-aot-smoke (module verify on 000-HelloWorld).Symptoms during
phpc build:Global is referenced by parentless instruction(@__value__readString,@phpc_scope_var_init_*)Function return type does not match operand type of return instundefinedvariablejithelper__emitWarningRoot causes (triaged)
(i8*, i32)but PHPemitWarning(string)expects__string__*.UndefinedVariableRuntime::ensureStandaloneBodiesduplicatedStringTriggerErrorJit::implementduring standalone init (corrupts module).NestedJitCompileScopein Fix AOT smoke: nested JIT helper compile isolation (#10343) #10498).Safe interim approach (works for guards)
UndefinedVariableRuntime::emitWarningForName()→UndefinedVariableJitHelper::warningMessage()SSOT +__compiler_trigger_error.UndefinedVariableJitHelper.phpinto the standalone module until bridge signatures are correct.UndefinedVariableRuntime::ensureStandaloneBodiesinContext(StringTriggerError already linked).Done when
emitWarningLLVM bridge with correct__string__*arg (or drop bridge if unused)examples-aot-smoke+UndefinedVariableRuntimeShrinkTest+ compliance cases passRelated