mirror of
https://github.com/php/php-src.git
synced 2026-03-24 16:22:37 +01:00
Increase the reserved stack size in ASAN builds, as instrumentation use more stack. Increase the max allowed stack size in some tests, and enable these tests under ASAN. Use __builtin_frame_address(0), instead of some stack variable, when we need a stack address, as ASAN may store local variables outside of the real stack.
42 lines
910 B
PHP
42 lines
910 B
PHP
--TEST--
|
|
Stack limit 012 - Stack limit exhaustion during unwinding
|
|
--SKIPIF--
|
|
<?php
|
|
if (!function_exists('zend_test_zend_call_stack_get')) die("skip zend_test_zend_call_stack_get() is not available");
|
|
?>
|
|
--EXTENSIONS--
|
|
zend_test
|
|
--INI--
|
|
zend.max_allowed_stack_size=512K
|
|
--FILE--
|
|
<?php
|
|
|
|
var_dump(zend_test_zend_call_stack_get());
|
|
|
|
function replace() {
|
|
return preg_replace_callback('#.#', function () {
|
|
try {
|
|
replace();
|
|
} finally {
|
|
require __DIR__ . '/stack_limit_012.inc';
|
|
}
|
|
}, 'x');
|
|
}
|
|
|
|
replace();
|
|
|
|
?>
|
|
--EXPECTF--
|
|
array(4) {
|
|
["base"]=>
|
|
string(%d) "0x%x"
|
|
["max_size"]=>
|
|
string(%d) "0x%x"
|
|
["position"]=>
|
|
string(%d) "0x%x"
|
|
["EG(stack_limit)"]=>
|
|
string(%d) "0x%x"
|
|
}
|
|
|
|
Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d
|