opline->opcode = ZEND_SEND_VAL;
opline->op1.constant = zend_optimizer_add_literal(op_array, val);
break;
- case ZEND_SEND_VAR_NO_REF_EX:
- opline->opcode = ZEND_SEND_VAL_EX;
- opline->op1.constant = zend_optimizer_add_literal(op_array, val);
- break;
case ZEND_SEPARATE:
case ZEND_SEND_VAR_NO_REF:
+ case ZEND_SEND_VAR_NO_REF_EX:
zval_ptr_dtor(val);
return 0;
case ZEND_CONCAT:
--- /dev/null
+--TEST--
+Pass result of inlined function by reference
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+function get_const() {
+ return 42;
+}
+
+function test() {
+ foo(get_const());
+}
+
+if (true) {
+ function foo(&$ref) {}
+}
+
+test();
+?>
+OK
+--EXPECTF--
+Notice: Only variables should be passed by reference in %swrong_inlining_001.php on line 7
+OK
\ No newline at end of file