Merge branch 'PHP-8.0'

* PHP-8.0:
  FIxed bug #80299
This commit is contained in:
Nikita Popov 2020-10-30 17:24:02 +01:00
commit ada2a55e07
2 changed files with 16 additions and 1 deletions

View file

@ -807,8 +807,8 @@ cleanup_args:
zval *arg; zval *arg;
uint32_t arg_num = ZEND_CALL_NUM_ARGS(call) + 1; uint32_t arg_num = ZEND_CALL_NUM_ARGS(call) + 1;
zend_bool have_named_params = 0; zend_bool have_named_params = 0;
zend_bool must_wrap = 0;
ZEND_HASH_FOREACH_STR_KEY_VAL(fci->named_params, name, arg) { ZEND_HASH_FOREACH_STR_KEY_VAL(fci->named_params, name, arg) {
zend_bool must_wrap = 0;
zval *target; zval *target;
if (name) { if (name) {
void *cache_slot[2] = {NULL, NULL}; void *cache_slot[2] = {NULL, NULL};

View file

@ -0,0 +1,15 @@
--TEST--
Bug #80299: ReflectionFunction->invokeArgs confused in arguments
--FILE--
<?php
$bar = new DateTime();
$args = [1, &$bar];
$function = function (int &$foo, DateTimeInterface &$bar) {};
(new ReflectionFunction($function))->invokeArgs($args);
?>
--EXPECTF--
Warning: {closure}(): Argument #1 ($foo) must be passed by reference, value given in %s on line %d