--- /dev/null
+--TEST--
+Bug #34786 (2 @ results in change to error_reporting() to random value)
+--FILE--
+<?php
+function foo($a,$b,$c) {
+echo "foo: ".error_reporting()."\n";
+}
+
+function bar() {
+echo "bar: ".error_reporting()."\n";
+}
+
+error_reporting(1);
+echo "before: ".error_reporting()."\n";
+@foo(1,@bar(),3);
+echo "after: ".error_reporting()."\n";
+?>
+--EXPECT--
+before: 1
+bar: 0
+foo: 0
+after: 1
{
zend_op *opline = EX(opline);
+ EX_T(opline->result.u.var).tmp_var.value.lval = EG(error_reporting);
+ EX_T(opline->result.u.var).tmp_var.type = IS_LONG; /* shouldn't be necessary */
if (EX(old_error_reporting) == NULL) {
- EX_T(opline->result.u.var).tmp_var.value.lval = EG(error_reporting);
- EX_T(opline->result.u.var).tmp_var.type = IS_LONG; /* shouldn't be necessary */
EX(old_error_reporting) = &EX_T(opline->result.u.var).tmp_var;
}
{
zend_op *opline = EX(opline);
+ EX_T(opline->result.u.var).tmp_var.value.lval = EG(error_reporting);
+ EX_T(opline->result.u.var).tmp_var.type = IS_LONG; /* shouldn't be necessary */
if (EX(old_error_reporting) == NULL) {
- EX_T(opline->result.u.var).tmp_var.value.lval = EG(error_reporting);
- EX_T(opline->result.u.var).tmp_var.type = IS_LONG; /* shouldn't be necessary */
EX(old_error_reporting) = &EX_T(opline->result.u.var).tmp_var;
}