Skip to content

Commit fa35561

Browse files
committed
Merge branch 'PHP-8.0'
* PHP-8.0: Fixed incorrect invariant guard motion
2 parents aa84e2c + 2d2d42b commit fa35561

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

ext/opcache/jit/zend_jit_trace.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2197,7 +2197,8 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
21972197
ssa_var_info[phi->sources[0]].type = MAY_BE_GUARD | (t & t0);
21982198
}
21992199
if ((t1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != (t & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF))) {
2200-
if (is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) {
2200+
if (((t & t1) & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != 0
2201+
&& is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) {
22012202
ssa_var_info[phi->sources[1]].type = MAY_BE_GUARD | (t & t1);
22022203
ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD;
22032204
}

0 commit comments

Comments
 (0)