@@ -1826,6 +1826,9 @@ static void jit_ZVAL_PTR_DTOR(zend_jit_ctx  *jit,
18261826			ir_END_list(end_inputs);
18271827			ir_IF_FALSE(if_may_not_leak);
18281828
1829+ 			if (opline) {
1830+ 				jit_SET_EX_OPLINE(jit, opline);
1831+ 			}
18291832			ir_CALL_1(IR_VOID, ir_CONST_FC_FUNC(gc_possible_root), ref);
18301833		}
18311834
@@ -6514,6 +6517,9 @@ static int zend_jit_assign_to_variable(zend_jit_ctx   *jit,
65146517			if (RC_MAY_BE_N(var_info) && (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0) {
65156518				ir_ref if_may_leak = jit_if_GC_MAY_NOT_LEAK(jit, ref);
65166519				ir_IF_FALSE(if_may_leak);
6520+ 				if (opline) {
6521+ 					jit_SET_EX_OPLINE(jit, opline);
6522+ 				}
65176523				ir_CALL_1(IR_VOID, ir_CONST_FC_FUNC(gc_possible_root), ref);
65186524
65196525				if (Z_MODE(var_addr) == IS_REG || Z_MODE(res_addr) == IS_REG) {
@@ -6541,6 +6547,9 @@ static int zend_jit_assign_to_variable(zend_jit_ctx   *jit,
65416547			if (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) {
65426548				ir_ref if_may_leak = jit_if_GC_MAY_NOT_LEAK(jit, ref);
65436549				ir_IF_FALSE(if_may_leak);
6550+ 				if (opline) {
6551+ 					jit_SET_EX_OPLINE(jit, opline);
6552+ 				}
65446553				ir_CALL_1(IR_VOID, ir_CONST_FC_FUNC(gc_possible_root), ref);
65456554				ir_END_list(simple_inputs);
65466555				ir_IF_TRUE(if_may_leak);
@@ -11213,6 +11222,9 @@ static int zend_jit_bind_global(zend_jit_ctx *jit, const zend_op *opline, uint32
1121311222			ir_IF_TRUE(if_may_not_leak);
1121411223			ir_END_list(end_inputs);
1121511224			ir_IF_FALSE(if_may_not_leak);
11225+ 			if (opline) {
11226+ 				jit_SET_EX_OPLINE(jit, opline);
11227+ 			}
1121611228			ir_CALL_1(IR_VOID, ir_CONST_FC_FUNC(gc_possible_root), ref2);
1121711229		}
1121811230		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
0 commit comments