}
}
break;
+ case ZEND_CAST:
+ if (tssa->ops[idx].op1_use >= 0 && op1_type != IS_UNKNOWN) {
+ if (opline->extended_value == op1_type) {
+ zend_ssa_var_info *info = &ssa_var_info[ssa_ops[idx].op1_use];
+ if ((info->type & (MAY_BE_ANY|MAY_BE_UNDEF)) != (1 << op1_type)) {
+ info->type = MAY_BE_GUARD | zend_jit_trace_type_to_info_ex(op1_type, info->type);
+ }
+ }
+ }
+ break;
case ZEND_ASSIGN:
if (tssa->ops[idx].op2_use >= 0 && op2_type != IS_UNKNOWN) {
zend_ssa_var_info *info = &ssa_var_info[ssa_ops[idx].op2_use];
goto jit_failure;
}
goto done;
+ case ZEND_CAST:
+ if (opline->extended_value != op1_type) {
+ break;
+ }
+ /* break missing intentionally */
case ZEND_QM_ASSIGN:
op1_addr = OP1_REG_ADDR();
if (ra