Category
bug · php-src-strict · AOT · pillar 4
Problem
quotemeta() matches Zend on VM and JIT (a\.b), but the AOT binary builds then segfaults before printing.
| Repro |
Zend / VM / JIT (2026-08-02, 712a1e64a) |
AOT bin/compile.php |
echo quotemeta("a.b") |
a\.b |
builds; run → phpc: fatal signal (segfault) after c:main_before_php (exit 139) |
Prior routing work (#21589) closed; this is a fresh AOT runtime crash on master.
php-src reference
PHP implementation target
ext/standard string helpers + AOT/JIT call path in lib/JIT — PHP-in-PHP
- Fix the standalone/AOT value/string ABI; do not paper over with new C
Repro
./script/docker-exec.sh -- bash -lc '
cat > /tmp/aot_quotemeta.php <<'"'"'PHP'"'"'
<?php
echo quotemeta("a.b"), "\n";
PHP
echo -n "zend="; php /tmp/aot_quotemeta.php
echo -n "vm="; php bin/vm.php /tmp/aot_quotemeta.php 2>/dev/null
echo -n "jit="; php bin/jit.php /tmp/aot_quotemeta.php 2>/dev/null | grep -v Deprecated
php bin/compile.php -o /tmp/aot_quotemeta /tmp/aot_quotemeta.php && /tmp/aot_quotemeta
'
Done when
Category
bug· php-src-strict · AOT · pillar 4Problem
quotemeta()matches Zend on VM and JIT (a\.b), but the AOT binary builds then segfaults before printing.712a1e64a)bin/compile.phpecho quotemeta("a.b")a\.bphpc: fatal signal (segfault) after c:main_before_php(exit 139)Prior routing work (#21589) closed; this is a fresh AOT runtime crash on master.
php-src reference
ext/standard/string.c—PHP_FUNCTION(quotemeta)ext/standard/basic_functions.stub.php—quotemetaPHP implementation target
ext/standardstring helpers + AOT/JIT call path inlib/JIT— PHP-in-PHPRepro
Done when
a\.bmatching Zend/VM/JIT--repeat 10on the built binary before claiming fixed (heap crashes are intermittent)test/repro/guard