TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

39 lines
930 B

--TEST--
Bug #77669: Crash in extract() when overwriting extracted array
--SKIPIF--
<?php die("skip extract() not supported by AOT"); ?>
--FILE--
<?php
function test($mode) {
$foo = [];
$foo["foo"] = 42;
$foo["bar"] = 24;
extract($foo, $mode, "");
$prefix_foo = [];
$prefix_foo["foo"] = 42;
$prefix_foo["bar"] = 24;
extract($prefix_foo, $mode, "prefix");
}
function main() {
test(EXTR_OVERWRITE);
test(EXTR_SKIP);
test(EXTR_IF_EXISTS);
test(EXTR_PREFIX_SAME);
test(EXTR_PREFIX_ALL);
test(EXTR_PREFIX_INVALID);
test(EXTR_PREFIX_IF_EXISTS);
test(EXTR_REFS | EXTR_OVERWRITE);
test(EXTR_REFS | EXTR_SKIP);
test(EXTR_REFS | EXTR_IF_EXISTS);
test(EXTR_REFS | EXTR_PREFIX_SAME);
test(EXTR_REFS | EXTR_PREFIX_ALL);
test(EXTR_REFS | EXTR_PREFIX_INVALID);
test(EXTR_REFS | EXTR_PREFIX_IF_EXISTS);
echo "===DONE===\n";
}
?>
--EXPECT--
===DONE===