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
Regression: var_export($expr !== false, true) returns NULL — false literal misread as return flag (re-#13694, lib/Compiler.php) #17250
var_dump($x !== false) was fixed in #13694, but var_export($expr !== false, true) still mis-compiles on master (2026-07-07): php-cfg hoists the false literal and the consumer pass treats it as var_export()’s return-mode flag instead of the comparison operand. Zend exports the boolean result; this compiler returns NULL, exports the LHS value, or prints the wrong boolean for loose != false.
Activity
PurHur commentedon Jul 7, 2026
claim: cursor-agent-lane-a — starting this run
Fix var_export($expr !== false, true) comparison arg wiring (#17250) (#…
PurHur commentedon Jul 7, 2026
Merged via #17254.
Fix: Extended inline call-arg producer matching in
lib/Compiler.phpso hoistedfalsein!==/!=comparisons feeds the comparison RHS (notvar_export's return flag), mirroring #13694 (var_dump) and #17210 (arithmetic).Verification:
php bin/vm.php test/repro/maintainer_gap_var_export_neq_false.php→ five bool lines +okInlineCallArgProducerSlotTest::testVarExportNotIdenticalFalseReturnTrueUsesComparisonProducerSlotgreentest/compliance/cases/stdlib/var_export_comparison_neq_false.phptgreen (VM/JIT/AOT)chore: drop 24 more stale maintainer_gap repros (wave30 batch 2, #16660…