- Opcache:
. Fixed bug #76463 (var has array key type but not value type). (Laruence)
+ . Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion
+ `!(zval_gc_flags((str)->gc)). (Nikita, Laruence)
- ZIP:
. Fixed bug #76461 (OPSYS_Z_CPM defined instead of OPSYS_CPM).
* postdominator tree and of postdominance frontiers, which does not seem worthwhile at this
* point.
* * We separate intrinsic side-effects from potential side-effects in the form of notices thrown
- * by the instruction (in case we want to make this configurable). See may_have_side_effect() and
+ * by the instruction (in case we want to make this configurable). See may_have_side_effects() and
* zend_may_throw().
* * We often cannot DCE assignments and unsets while guaranteeing that dtors run in the same
* order. There is an optimization option to allow reordering of dtor effects.
case ZEND_CAST:
case ZEND_ROPE_INIT:
case ZEND_ROPE_ADD:
- case ZEND_ROPE_END:
case ZEND_INIT_ARRAY:
case ZEND_ADD_ARRAY_ELEMENT:
case ZEND_SPACESHIP:
case ZEND_FUNC_GET_ARGS:
/* No side effects */
return 0;
+ case ZEND_ROPE_END:
+ /* TODO: Rope dce optmization, see #76446 */
+ return 1;
case ZEND_JMP:
case ZEND_JMPZ:
case ZEND_JMPNZ:
--- /dev/null
+--TEST--
+Bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+function test()
+{
+ $openmenu = '';
+ $openstr2 = "&openmenu={$openmenu}{$addlang}\"";
+ return 0;
+}
+
+var_dump(test());
+?>
+--EXPECTF--
+Notice: Undefined variable: addlang in %sbug76446.php on line %d
+int(0)