Category
Regression · php-src-strict · AOT · pillar 4
Problem
array_walk_recursive matches Zend on VM and JIT, but thin AOT segfaults after a successful build (happy path and null). Sibling of open #26969 (array_walk AOT segfault). Probed 2026-08-04 @ fb10b03c1.
| Repro |
Zend / VM / JIT |
AOT (phpc build, ×3) |
$a=[1,[2]]; array_walk_recursive($a, fn(&$v)=>$v*=10); echo … |
10,20 |
segfault fatal signal after c:main_before_php (exit 139, 3/3) |
array_walk_recursive(null, …) under try/catch |
TypeError:…null given |
same segfault (exit 139, 3/3) — never reaches TypeError |
php-src reference
PHP implementation target
- AOT/JIT walk-recursive lowering in
ext/standard + lib/JIT/ (PHP helpers; align with array_walk fix)
- PHP-in-PHP; no new C runtime branches
Repro
./script/docker-exec.sh -- bash -lc '
cat > /tmp/awr_ok.php <<'"'"'PHP'"'"'
<?php
$a = [1, [2]];
array_walk_recursive($a, function (&$v) { $v *= 10; });
echo $a[0] . "," . $a[1][0];
PHP
php /tmp/awr_ok.php
php bin/vm.php /tmp/awr_ok.php
php bin/jit.php /tmp/awr_ok.php
./phpc build -o /tmp/awr_ok.bin /tmp/awr_ok.php && /tmp/awr_ok.bin
# repeat binary ≥3× — exit 139 every run on 2026-08-04
'
Done when
Gate context (same machine, 2026-08-04)
Category
Regression· php-src-strict · AOT · pillar 4Problem
array_walk_recursivematches Zend on VM and JIT, but thin AOT segfaults after a successful build (happy path and null). Sibling of open #26969 (array_walkAOT segfault). Probed 2026-08-04 @fb10b03c1.phpc build, ×3)$a=[1,[2]]; array_walk_recursive($a, fn(&$v)=>$v*=10); echo …10,20fatal signal after c:main_before_php(exit 139, 3/3)array_walk_recursive(null, …)under try/catchTypeError:…null givenphp-src reference
ext/standard/array.c—PHP_FUNCTION(array_walk_recursive)/php_array_walkarray_walkAOT segfault) — fix may share lowering/helper pathPHP implementation target
ext/standard+lib/JIT/(PHP helpers; align witharray_walkfix)Repro
Done when
10,20) on ≥3 consecutive runsarray_walk_recursive(null, …)throws catchableTypeError(not segfault)AotTest/ compliance guardGate context (same machine, 2026-08-04)
user_release_ready: novianorth-star5-fastgen-0 mismatch (Self-host M5: bootstrap-inventory argv driver size floor — grow beyond 451KB stub #8713)