zend_emit_jump() may reallocate, so reload the opline.
(Nikita)
. Fixed bug #74188 (Null coalescing operator fails for undeclared static
class properties). (tpunt)
+ . Fixed bug #74444 (multiple catch freezes in some cases). (David Matějka)
- Date:
. Fixed bug #74404 (Wrong reflection on DateTimeZone::getTransitions).
--- /dev/null
+--TEST--
+Bug #74444 (multiple catch freezes in some cases)
+--FILE--
+<?php
+function foo()
+{
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ echo '';
+ try {
+ throw new \RuntimeException();
+ } catch (\FooEx | \RuntimeException $e) {
+ echo 1;
+ }
+ echo 2;
+}
+
+foo();
+
+--EXPECT--
+12
if (!is_last_class) {
jmp_multicatch[j] = zend_emit_jump(0);
+ opline = &CG(active_op_array)->opcodes[opnum_catch];
opline->extended_value = get_next_op_number(CG(active_op_array));
}
}