Lines Matching refs:tmp

431 …tic void zend_ssa_range_or(zend_long a, zend_long b, zend_long c, zend_long d, zend_ssa_range *tmp)  in zend_ssa_range_or()  argument
442 tmp->min = minOR(a, b, c, d); in zend_ssa_range_or()
443 tmp->max = maxOR(a, b, c, d); in zend_ssa_range_or()
446 tmp->min = minOR(a, b, c, -1); in zend_ssa_range_or()
447 tmp->max = maxOR(a, b, 0, d); in zend_ssa_range_or()
450 tmp->min = minOR(a, -1, c, d); in zend_ssa_range_or()
451 tmp->max = maxOR(0, b, c, d); in zend_ssa_range_or()
454 tmp->min = MIN(a, c); in zend_ssa_range_or()
455 tmp->max = maxOR(0, b, 0, d); in zend_ssa_range_or()
458 tmp->min = c; in zend_ssa_range_or()
459 tmp->max = -1; in zend_ssa_range_or()
462 tmp->min = a; in zend_ssa_range_or()
463 tmp->max = -1; in zend_ssa_range_or()
479 …ic void zend_ssa_range_and(zend_long a, zend_long b, zend_long c, zend_long d, zend_ssa_range *tmp) in zend_ssa_range_and() argument
490 tmp->min = minAND(a, b, c, d); in zend_ssa_range_and()
491 tmp->max = maxAND(a, b, c, d); in zend_ssa_range_and()
494 tmp->min = 0; in zend_ssa_range_and()
495 tmp->max = b; in zend_ssa_range_and()
498 tmp->min = 0; in zend_ssa_range_and()
499 tmp->max = d; in zend_ssa_range_and()
502 tmp->min = minAND(a, -1, c, -1); in zend_ssa_range_and()
503 tmp->max = MAX(b, d); in zend_ssa_range_and()
506 tmp->min = minAND(a, -1, c, d); in zend_ssa_range_and()
507 tmp->max = maxAND(0, b, c, d); in zend_ssa_range_and()
510 tmp->min = minAND(a, b, c, -1); in zend_ssa_range_and()
511 tmp->max = maxAND(a, b, 0, d); in zend_ssa_range_and()
568 zend_op *opline, zend_ssa_op *ssa_op, zend_uchar opcode, zend_ssa_range *tmp) { in zend_inference_calc_binary_op_range() argument
578 tmp->min = op1_min + op2_min; in zend_inference_calc_binary_op_range()
579 tmp->max = op1_max + op2_max; in zend_inference_calc_binary_op_range()
582 (op1_min < 0 && op2_min < 0 && tmp->min >= 0)) { in zend_inference_calc_binary_op_range()
583 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
584 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
588 (op1_max > 0 && op2_max > 0 && tmp->max <= 0)) { in zend_inference_calc_binary_op_range()
589 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
590 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
601 tmp->min = op1_min - op2_max; in zend_inference_calc_binary_op_range()
602 tmp->max = op1_max - op2_min; in zend_inference_calc_binary_op_range()
605 (op1_min < 0 && op2_max > 0 && tmp->min >= 0)) { in zend_inference_calc_binary_op_range()
606 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
607 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
611 (op1_max > 0 && op2_min < 0 && tmp->max <= 0)) { in zend_inference_calc_binary_op_range()
612 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
613 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
637 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
638 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
639 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
640 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
642 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
643 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
674 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
675 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
676 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
677 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
679 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
680 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
691 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
692 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
714 tmp->min = op1_max < op2_abs_min ? op1_min : 0; in zend_inference_calc_binary_op_range()
715 tmp->max = MIN(op1_max, op2_abs_max - 1); in zend_inference_calc_binary_op_range()
717 tmp->min = MAX(op1_min, -op2_abs_max + 1); in zend_inference_calc_binary_op_range()
718 tmp->max = op1_min > -op2_abs_min ? op1_max : 0; in zend_inference_calc_binary_op_range()
720 tmp->min = MAX(op1_min, -op2_abs_max + 1); in zend_inference_calc_binary_op_range()
721 tmp->max = MIN(op1_max, op2_abs_max - 1); in zend_inference_calc_binary_op_range()
733 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
734 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
751 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
752 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
758 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
759 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
771 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
772 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
799 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
800 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
811 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
812 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
818 zend_ssa_range_or(op1_min, op1_max, op2_min, op2_max, tmp); in zend_inference_calc_binary_op_range()
829 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
830 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
836 zend_ssa_range_and(op1_min, op1_max, op2_min, op2_max, tmp); in zend_inference_calc_binary_op_range()
849 … zend_op_array *op_array, zend_ssa *ssa, int var, int widening, int narrowing, zend_ssa_range *tmp) in zend_inference_calc_range() argument
859 tmp->underflow = 0; in zend_inference_calc_range()
860 tmp->min = ZEND_LONG_MAX; in zend_inference_calc_range()
861 tmp->max = ZEND_LONG_MIN; in zend_inference_calc_range()
862 tmp->overflow = 0; in zend_inference_calc_range()
867 *tmp = ssa->var_info[p->sources[0]].range; in zend_inference_calc_range()
869 tmp->underflow = 1; in zend_inference_calc_range()
870 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
871 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
872 tmp->overflow = 1; in zend_inference_calc_range()
884 tmp->min, in zend_inference_calc_range()
885 tmp->max); in zend_inference_calc_range()
887 tmp->max >= constraint->range.min) { in zend_inference_calc_range()
888 tmp->overflow = 0; in zend_inference_calc_range()
889 tmp->max = constraint->range.min - 1; in zend_inference_calc_range()
890 LOG_NEG_RANGE(" => [%ld..%ld]\n", tmp->min, tmp->max); in zend_inference_calc_range()
892 tmp->min <= constraint->range.max) { in zend_inference_calc_range()
893 tmp->underflow = 0; in zend_inference_calc_range()
894 tmp->min = constraint->range.max + 1; in zend_inference_calc_range()
895 LOG_NEG_RANGE(" => [%ld..%ld]\n", tmp->min, tmp->max); in zend_inference_calc_range()
901 *tmp = ssa->var_info[p->sources[0]].range; in zend_inference_calc_range()
903 tmp->underflow = constraint->range.underflow && tmp->underflow; in zend_inference_calc_range()
904 tmp->min = MAX(constraint->range.min, tmp->min); in zend_inference_calc_range()
907 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow && tmp->underflow; in zend_inference_calc_range()
909tmp->min = MAX(ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min, tmp->min); in zend_inference_calc_range()
914 tmp->max = MIN(constraint->range.max, tmp->max); in zend_inference_calc_range()
915 tmp->overflow = constraint->range.overflow && tmp->overflow; in zend_inference_calc_range()
919tmp->max = MIN(ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max, tmp->max); in zend_inference_calc_range()
921 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow && tmp->overflow; in zend_inference_calc_range()
926 tmp->underflow = constraint->range.underflow; in zend_inference_calc_range()
927 tmp->min = constraint->range.min; in zend_inference_calc_range()
931 tmp->underflow = 1; in zend_inference_calc_range()
932 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
934 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow; in zend_inference_calc_range()
935 tmp->min = ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min; in zend_inference_calc_range()
939 tmp->underflow = 1; in zend_inference_calc_range()
940 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
943 tmp->max = constraint->range.max; in zend_inference_calc_range()
944 tmp->overflow = constraint->range.overflow; in zend_inference_calc_range()
948 tmp->overflow = 1; in zend_inference_calc_range()
949 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
951 tmp->max = ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max; in zend_inference_calc_range()
952 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow; in zend_inference_calc_range()
956 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
957 tmp->overflow = 1; in zend_inference_calc_range()
965 tmp->underflow |= ssa->var_info[p->sources[i]].range.underflow; in zend_inference_calc_range()
966 tmp->min = MIN(tmp->min, ssa->var_info[p->sources[i]].range.min); in zend_inference_calc_range()
967 tmp->max = MAX(tmp->max, ssa->var_info[p->sources[i]].range.max); in zend_inference_calc_range()
968 tmp->overflow |= ssa->var_info[p->sources[i]].range.overflow; in zend_inference_calc_range()
970 tmp->underflow = 1; in zend_inference_calc_range()
971 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
972 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
973 tmp->overflow = 1; in zend_inference_calc_range()
977 return (tmp->min <= tmp->max); in zend_inference_calc_range()
982 tmp->min = 0; in zend_inference_calc_range()
983 tmp->max = 0; in zend_inference_calc_range()
984 tmp->underflow = 0; in zend_inference_calc_range()
985 tmp->overflow = 0; in zend_inference_calc_range()
993 tmp->underflow = 0; in zend_inference_calc_range()
994 tmp->overflow = 0; in zend_inference_calc_range()
1008 op_array, ssa, opline, &ssa->ops[line], opline->opcode, tmp); in zend_inference_calc_range()
1017 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1018 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1022 tmp->min = ~op1_max; in zend_inference_calc_range()
1023 tmp->max = ~op1_min; in zend_inference_calc_range()
1033 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1034 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1035 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1036 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1042 tmp->min = 0; in zend_inference_calc_range()
1043 tmp->max = 0; in zend_inference_calc_range()
1049 tmp->min = (op1_min > 0 || op1_max < 0); in zend_inference_calc_range()
1050 tmp->max = (op1_min != 0 || op1_max != 0); in zend_inference_calc_range()
1053 tmp->min = 0; in zend_inference_calc_range()
1054 tmp->max = 1; in zend_inference_calc_range()
1059 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1060 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1063 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1064 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1077 tmp->min = (op1_min > 0 || op1_max < 0); in zend_inference_calc_range()
1078 tmp->max = (op1_min != 0 || op1_max != 0); in zend_inference_calc_range()
1081 tmp->min = 0; in zend_inference_calc_range()
1082 tmp->max = 1; in zend_inference_calc_range()
1092 tmp->min = (op1_min == 0 && op1_max == 0); in zend_inference_calc_range()
1093 tmp->max = (op1_min <= 0 && op1_max >= 0); in zend_inference_calc_range()
1096 tmp->min = 0; in zend_inference_calc_range()
1097 tmp->max = 1; in zend_inference_calc_range()
1113 tmp->min = 0; in zend_inference_calc_range()
1114 tmp->max = 1; in zend_inference_calc_range()
1117 tmp->max = 0; in zend_inference_calc_range()
1119 tmp->min = 1; in zend_inference_calc_range()
1124 tmp->min = 0; in zend_inference_calc_range()
1125 tmp->max = 1; in zend_inference_calc_range()
1139 tmp->min = (op1_min == op1_max && in zend_inference_calc_range()
1142 tmp->max = (op1_min <= op2_max && op1_max >= op2_min); in zend_inference_calc_range()
1145 tmp->min = 0; in zend_inference_calc_range()
1146 tmp->max = 1; in zend_inference_calc_range()
1160 tmp->min = (op1_min > op2_max || op1_max < op2_min); in zend_inference_calc_range()
1161 tmp->max = (op1_min != op1_max || in zend_inference_calc_range()
1166 tmp->min = 0; in zend_inference_calc_range()
1167 tmp->max = 1; in zend_inference_calc_range()
1180 tmp->min = op1_max < op2_min; in zend_inference_calc_range()
1181 tmp->max = op1_min < op2_max; in zend_inference_calc_range()
1184 tmp->min = 0; in zend_inference_calc_range()
1185 tmp->max = 1; in zend_inference_calc_range()
1198 tmp->min = op1_max <= op2_min; in zend_inference_calc_range()
1199 tmp->max = op1_min <= op2_max; in zend_inference_calc_range()
1202 tmp->min = 0; in zend_inference_calc_range()
1203 tmp->max = 1; in zend_inference_calc_range()
1214 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1215 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1216 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1217 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1224 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1225 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1226 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1227 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1234 tmp->min = 0; in zend_inference_calc_range()
1235 tmp->max = 1; in zend_inference_calc_range()
1243 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1244 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1245 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1246 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1255 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1256 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1257 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1258 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1259 if (tmp->max < ZEND_LONG_MAX) { in zend_inference_calc_range()
1260 tmp->max++; in zend_inference_calc_range()
1262 tmp->overflow = 1; in zend_inference_calc_range()
1264 if (tmp->min < ZEND_LONG_MAX && !tmp->underflow) { in zend_inference_calc_range()
1265 tmp->min++; in zend_inference_calc_range()
1274 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1275 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1276 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1277 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1278 if (tmp->min > ZEND_LONG_MIN) { in zend_inference_calc_range()
1279 tmp->min--; in zend_inference_calc_range()
1281 tmp->underflow = 1; in zend_inference_calc_range()
1283 if (tmp->max > ZEND_LONG_MIN && !tmp->overflow) { in zend_inference_calc_range()
1284 tmp->max--; in zend_inference_calc_range()
1293 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1294 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1295 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1296 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1300 if (tmp->max < ZEND_LONG_MAX) { in zend_inference_calc_range()
1301 tmp->max++; in zend_inference_calc_range()
1303 tmp->overflow = 1; in zend_inference_calc_range()
1305 if (tmp->min < ZEND_LONG_MAX && !tmp->underflow) { in zend_inference_calc_range()
1306 tmp->min++; in zend_inference_calc_range()
1315 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1316 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1317 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1318 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1322 if (tmp->min > ZEND_LONG_MIN) { in zend_inference_calc_range()
1323 tmp->min--; in zend_inference_calc_range()
1325 tmp->underflow = 1; in zend_inference_calc_range()
1327 if (tmp->max > ZEND_LONG_MIN && !tmp->overflow) { in zend_inference_calc_range()
1328 tmp->max--; in zend_inference_calc_range()
1340 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1341 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1342 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1343 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1351 tmp->min = OP2_MIN_RANGE(); in zend_inference_calc_range()
1352 tmp->max = OP2_MAX_RANGE(); in zend_inference_calc_range()
1353 tmp->underflow = OP2_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1354 tmp->overflow = OP2_RANGE_OVERFLOW(); in zend_inference_calc_range()
1364 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1365 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1366 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1367 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1386 get_compound_assign_op(opline->opcode), tmp); in zend_inference_calc_range()
1392 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1393 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1394 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1395 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1410 tmp->min = OP1_MIN_RANGE(); in zend_inference_calc_range()
1411 tmp->max = OP1_MAX_RANGE(); in zend_inference_calc_range()
1412 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_calc_range()
1413 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_calc_range()
1428 *tmp = func_info->arg_info[opline->op1.num-1].info.range; in zend_inference_calc_range()
1433 tmp->underflow = 0; in zend_inference_calc_range()
1434 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1435 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1436 tmp->overflow = 0; in zend_inference_calc_range()
1439 tmp->underflow = 0; in zend_inference_calc_range()
1440 tmp->min = 0; in zend_inference_calc_range()
1441 tmp->max = 1; in zend_inference_calc_range()
1442 tmp->overflow = 0; in zend_inference_calc_range()
1454 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1456 tmp->min = 0; in zend_inference_calc_range()
1458 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1463 tmp->min = 0; in zend_inference_calc_range()
1464 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1468 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1469 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1489 *tmp = func_info->return_info.range; in zend_inference_calc_range()
1499 tmp->underflow = 0; in zend_inference_calc_range()
1500 tmp->min = 0; in zend_inference_calc_range()
1501 tmp->max = 0; in zend_inference_calc_range()
1502 tmp->overflow = 0; in zend_inference_calc_range()
1504 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1505 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1508 tmp->min = 1; in zend_inference_calc_range()
1510 tmp->max = 1; in zend_inference_calc_range()
1570 zend_ssa_range tmp; in zend_ssa_range_widening() local
1572 if (zend_inference_calc_range(op_array, ssa, var, 1, 0, &tmp)) { in zend_ssa_range_widening()
1573 if (zend_inference_widening_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_widening()
1574 …widening SCC %2d) %2d [%s%ld..%ld%s]\n", scc, var, (tmp.underflow?"-- ":""), tmp.min, tmp.max, (t… in zend_ssa_range_widening()
1615 zend_ssa_range tmp; in zend_ssa_range_narrowing() local
1617 if (zend_inference_calc_range(op_array, ssa, var, 0, 1, &tmp)) { in zend_ssa_range_narrowing()
1618 if (zend_inference_narrowing_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_narrowing()
1619 …narrowing SCC %2d) %2d [%s%ld..%ld%s]\n", scc, var, (tmp.underflow?"-- ":""), tmp.min, tmp.max, (t… in zend_ssa_range_narrowing()
1653 zend_ssa_range tmp; in zend_infer_ranges_warmup() local
1687 if (zend_inference_calc_range(op_array, ssa, j, 0, 0, &tmp)) { in zend_infer_ranges_warmup()
1699 if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1700 tmp.max == ssa->var_info[j].range.max) { in zend_infer_ranges_warmup()
1705 } else if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1706 tmp.max == ssa->var_info[j].range.max + 1 && in zend_infer_ranges_warmup()
1707 tmp.max < constraint->range.min) { in zend_infer_ranges_warmup()
1717 } else if (tmp.max == ssa->var_info[j].range.max && in zend_infer_ranges_warmup()
1718 tmp.min == ssa->var_info[j].range.min - 1 && in zend_infer_ranges_warmup()
1719 tmp.min > constraint->range.max) { in zend_infer_ranges_warmup()
1735 if (zend_inference_narrowing_meet(&ssa->var_info[j], &tmp)) { in zend_infer_ranges_warmup()
1736 …rmup %2d SCC %2d) %2d [%s%ld..%ld%s]\n", n, scc, j, (tmp.underflow?"-- ":""), tmp.min, tmp.max, (t… in zend_infer_ranges_warmup()
1753 zend_ssa_range tmp; in zend_infer_ranges() local
1779 if (zend_inference_calc_range(op_array, ssa, j, 0, 1, &tmp)) { in zend_infer_ranges()
1780 zend_inference_init_range(op_array, ssa, j, tmp.underflow, tmp.min, tmp.max, tmp.overflow); in zend_infer_ranges()
2038 uint32_t tmp = 0; in zend_array_element_type() local
2041tmp |= MAY_BE_ANY | MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_… in zend_array_element_type()
2045 tmp |= MAY_BE_NULL; in zend_array_element_type()
2047 tmp |= MAY_BE_NULL | ((t1 & MAY_BE_ARRAY_OF_ANY) >> MAY_BE_ARRAY_SHIFT); in zend_array_element_type()
2048 if (tmp & MAY_BE_ARRAY) { in zend_array_element_type()
2049 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_array_element_type()
2052 tmp |= MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN; in zend_array_element_type()
2053 } else if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_array_element_type()
2054 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_array_element_type()
2059 tmp |= MAY_BE_STRING | MAY_BE_RC1; in zend_array_element_type()
2061 tmp |= MAY_BE_NULL; in zend_array_element_type()
2065 tmp |= MAY_BE_NULL; in zend_array_element_type()
2068 tmp |= MAY_BE_ERROR; in zend_array_element_type()
2073 tmp |= MAY_BE_NULL; in zend_array_element_type()
2075 tmp |= MAY_BE_ERROR; in zend_array_element_type()
2078 return tmp; in zend_array_element_type()
2083 uint32_t tmp = arr_type & ~(MAY_BE_RC1|MAY_BE_RCN); in assign_dim_result_type() local
2086 tmp &= ~(MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE); in assign_dim_result_type()
2087 tmp |= MAY_BE_ARRAY|MAY_BE_RC1; in assign_dim_result_type()
2089 if (tmp & (MAY_BE_ARRAY|MAY_BE_STRING)) { in assign_dim_result_type()
2090 tmp |= MAY_BE_RC1; in assign_dim_result_type()
2092 if (tmp & (MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in assign_dim_result_type()
2093 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in assign_dim_result_type()
2095 if (tmp & MAY_BE_ARRAY) { in assign_dim_result_type()
2097 tmp |= MAY_BE_ARRAY_OF_NULL; in assign_dim_result_type()
2100 tmp |= MAY_BE_ARRAY_KEY_LONG; in assign_dim_result_type()
2103 tmp |= MAY_BE_ARRAY_KEY_LONG; in assign_dim_result_type()
2106 tmp |= MAY_BE_ARRAY_KEY_STRING; in assign_dim_result_type()
2109 tmp |= MAY_BE_ARRAY_KEY_LONG; in assign_dim_result_type()
2113 tmp |= MAY_BE_ARRAY_KEY_STRING; in assign_dim_result_type()
2118 if (tmp & MAY_BE_ARRAY_KEY_ANY) { in assign_dim_result_type()
2119 tmp |= (value_type & MAY_BE_ANY) << MAY_BE_ARRAY_SHIFT; in assign_dim_result_type()
2122 return tmp; in assign_dim_result_type()
2128 uint32_t tmp = 0; in binary_op_result_type() local
2136 tmp |= MAY_BE_OBJECT | MAY_BE_FALSE | MAY_BE_RC1; in binary_op_result_type()
2146 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2148 tmp |= MAY_BE_LONG; in binary_op_result_type()
2151 tmp |= MAY_BE_DOUBLE; in binary_op_result_type()
2153 tmp |= MAY_BE_ARRAY | MAY_BE_RC1; in binary_op_result_type()
2154 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2155 tmp |= t2 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2157 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2159 tmp |= MAY_BE_ARRAY | MAY_BE_RC1; in binary_op_result_type()
2160 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2161 tmp |= t2 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2172 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2174 tmp |= MAY_BE_LONG; in binary_op_result_type()
2177 tmp |= MAY_BE_DOUBLE; in binary_op_result_type()
2179 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2185 tmp |= MAY_BE_DOUBLE; in binary_op_result_type()
2187 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2193 tmp |= MAY_BE_LONG; in binary_op_result_type()
2200 tmp |= MAY_BE_STRING | MAY_BE_RC1; in binary_op_result_type()
2203 tmp |= MAY_BE_LONG; in binary_op_result_type()
2208 tmp |= MAY_BE_LONG; in binary_op_result_type()
2213 tmp = MAY_BE_STRING | MAY_BE_RC1 | MAY_BE_RCN; in binary_op_result_type()
2217 return tmp; in binary_op_result_type()
2236 uint32_t tmp = 0; in zend_fetch_arg_info() local
2242 tmp |= MAY_BE_OBJECT; in zend_fetch_arg_info()
2249 tmp |= MAY_BE_NULL; in zend_fetch_arg_info()
2251tmp |= MAY_BE_STRING|MAY_BE_OBJECT|MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_AR… in zend_fetch_arg_info()
2253 tmp |= MAY_BE_OBJECT|MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF; in zend_fetch_arg_info()
2255 tmp |= MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF; in zend_fetch_arg_info()
2257 tmp |= MAY_BE_TRUE|MAY_BE_FALSE; in zend_fetch_arg_info()
2260 tmp |= 1 << type_hint; in zend_fetch_arg_info()
2263 tmp |= MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF; in zend_fetch_arg_info()
2266 tmp |= MAY_BE_NULL; in zend_fetch_arg_info()
2268 return tmp; in zend_fetch_arg_info()
2278 uint32_t tmp, orig; in zend_update_type_info() local
2299 tmp = 0; in zend_update_type_info()
2301 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2304 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2307 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op2_def); in zend_update_type_info()
2325 tmp = binary_op_result_type(ssa, opline->opcode, t1, t2, ssa_ops[i].result_def); in zend_update_type_info()
2326 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2329 tmp = 0; in zend_update_type_info()
2331 tmp |= MAY_BE_STRING | MAY_BE_RC1; in zend_update_type_info()
2334 tmp |= MAY_BE_LONG; in zend_update_type_info()
2338 tmp |= MAY_BE_OBJECT | MAY_BE_RC1; in zend_update_type_info()
2340 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2369 tmp = t1; in zend_update_type_info()
2374 tmp |= MAY_BE_RCN; in zend_update_type_info()
2378 tmp |= MAY_BE_RCN; in zend_update_type_info()
2380 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2383 tmp = 0; in zend_update_type_info()
2385 tmp |= MAY_BE_TRUE|MAY_BE_FALSE; in zend_update_type_info()
2387 tmp |= 1 << opline->extended_value; in zend_update_type_info()
2388 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_update_type_info()
2389 if ((tmp & MAY_BE_ANY) == (t1 & MAY_BE_ANY)) { in zend_update_type_info()
2390 tmp |= (t1 & MAY_BE_RC1) | MAY_BE_RCN; in zend_update_type_info()
2394 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2397 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2399 tmp |= MAY_BE_RC1; in zend_update_type_info()
2405 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF); in zend_update_type_info()
2408 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
2410 tmp |= ((t1 & MAY_BE_ANY) << MAY_BE_ARRAY_SHIFT) | MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
2413 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2419 tmp = t1; in zend_update_type_info()
2421 tmp |= MAY_BE_RCN; in zend_update_type_info()
2423 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2426 tmp = t1 & ~(MAY_BE_UNDEF|MAY_BE_REF); in zend_update_type_info()
2428 tmp |= MAY_BE_NULL; in zend_update_type_info()
2431 tmp |= (t1 & (MAY_BE_RC1|MAY_BE_RCN)); in zend_update_type_info()
2433 tmp |= MAY_BE_RCN; in zend_update_type_info()
2438 tmp &= ~MAY_BE_NULL; in zend_update_type_info()
2441 tmp &= ~MAY_BE_FALSE; in zend_update_type_info()
2444 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2460 tmp = 0; in zend_update_type_info()
2462 tmp |= MAY_BE_REF; in zend_update_type_info()
2468 tmp |= MAY_BE_REF; in zend_update_type_info()
2475 tmp |= MAY_BE_REF; in zend_update_type_info()
2479 tmp |= binary_op_result_type( in zend_update_type_info()
2481 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY)) { in zend_update_type_info()
2482 tmp |= MAY_BE_RC1; in zend_update_type_info()
2484 if (tmp & (MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_update_type_info()
2485 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2490 orig = assign_dim_result_type(orig, OP2_INFO(), tmp, opline->op2_type); in zend_update_type_info()
2509 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2516 tmp |= MAY_BE_NULL; in zend_update_type_info()
2520 tmp |= MAY_BE_NULL; in zend_update_type_info()
2525 tmp |= MAY_BE_NULL; in zend_update_type_info()
2531 tmp |= MAY_BE_NULL; in zend_update_type_info()
2534 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2539 tmp = 0; in zend_update_type_info()
2541 tmp |= MAY_BE_REF; in zend_update_type_info()
2544 tmp |= MAY_BE_RC1; in zend_update_type_info()
2546 tmp |= MAY_BE_RCN; in zend_update_type_info()
2558 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in zend_update_type_info()
2560 tmp |= MAY_BE_LONG; in zend_update_type_info()
2564 tmp |= MAY_BE_NULL; in zend_update_type_info()
2568 tmp |= MAY_BE_LONG; in zend_update_type_info()
2570 tmp |= MAY_BE_NULL; in zend_update_type_info()
2574 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in zend_update_type_info()
2577 tmp |= MAY_BE_DOUBLE; in zend_update_type_info()
2580 tmp |= MAY_BE_STRING | MAY_BE_LONG | MAY_BE_DOUBLE; in zend_update_type_info()
2582tmp |= t1 & (MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_RESOURCE | MAY_BE_ARRAY | MAY_BE_OBJECT | MAY_BE_… in zend_update_type_info()
2585 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2588 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2594 tmp = 0; in zend_update_type_info()
2596 tmp |= MAY_BE_RC1|MAY_BE_RCN; in zend_update_type_info()
2598 tmp |= t1 & ~(MAY_BE_UNDEF|MAY_BE_ERROR|MAY_BE_REF|MAY_BE_RCN); in zend_update_type_info()
2600 tmp |= MAY_BE_NULL; in zend_update_type_info()
2602 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2604 tmp = 0; in zend_update_type_info()
2606 tmp |= MAY_BE_REF; in zend_update_type_info()
2609 tmp |= MAY_BE_RC1; in zend_update_type_info()
2620 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in zend_update_type_info()
2622 tmp |= MAY_BE_LONG; in zend_update_type_info()
2626 tmp |= MAY_BE_NULL; in zend_update_type_info()
2630 tmp |= MAY_BE_LONG; in zend_update_type_info()
2632 tmp |= MAY_BE_NULL; in zend_update_type_info()
2636 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in zend_update_type_info()
2639 tmp |= MAY_BE_DOUBLE; in zend_update_type_info()
2642 tmp |= MAY_BE_STRING | MAY_BE_LONG | MAY_BE_DOUBLE; in zend_update_type_info()
2644tmp |= t1 & (MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_RESOURCE | MAY_BE_ARRAY | MAY_BE_OBJECT | MAY_BE_… in zend_update_type_info()
2647 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2652 tmp = assign_dim_result_type(t1, t2, OP1_DATA_INFO(), opline->op2_type); in zend_update_type_info()
2653 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2657 tmp = 0; in zend_update_type_info()
2659 tmp |= MAY_BE_STRING; in zend_update_type_info()
2662tmp |= (OP1_DATA_INFO() & (MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_… in zend_update_type_info()
2667 tmp |= MAY_BE_NULL; in zend_update_type_info()
2671 tmp |= MAY_BE_NULL; in zend_update_type_info()
2676 tmp |= MAY_BE_NULL; in zend_update_type_info()
2679 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2681 tmp |= MAY_BE_REF; in zend_update_type_info()
2683 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2688 tmp = OP1_INFO(); in zend_update_type_info()
2689 if (tmp & (MAY_BE_ANY | MAY_BE_REF)) { in zend_update_type_info()
2690 if (tmp & MAY_BE_RC1) { in zend_update_type_info()
2691 tmp |= MAY_BE_RCN; in zend_update_type_info()
2694 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2699 tmp = t1; in zend_update_type_info()
2701 tmp &= ~(MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE); in zend_update_type_info()
2702 tmp |= MAY_BE_OBJECT | MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2704 if (tmp & MAY_BE_OBJECT) { in zend_update_type_info()
2705 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2707 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2712tmp = MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_A… in zend_update_type_info()
2713 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2718 tmp = OP1_INFO(); in zend_update_type_info()
2719 if (tmp & (MAY_BE_ANY | MAY_BE_REF)) { in zend_update_type_info()
2720 if (tmp & MAY_BE_RC1) { in zend_update_type_info()
2721 tmp |= MAY_BE_RCN; in zend_update_type_info()
2724 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2729 tmp = t2; in zend_update_type_info()
2730 if (tmp & (MAY_BE_ANY | MAY_BE_REF)) { in zend_update_type_info()
2731 if (tmp & MAY_BE_RC1) { in zend_update_type_info()
2732 tmp |= MAY_BE_RCN; in zend_update_type_info()
2735 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op2_def); in zend_update_type_info()
2737 tmp = t2 & ~(MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2739 tmp |= MAY_BE_NULL; in zend_update_type_info()
2742 tmp |= MAY_BE_REF; in zend_update_type_info()
2745 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2747 tmp |= t2 & (MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2749 tmp |= MAY_BE_RCN; in zend_update_type_info()
2751 if (RETURN_VALUE_USED(opline) && (tmp & MAY_BE_RC1)) { in zend_update_type_info()
2752 tmp |= MAY_BE_RCN; in zend_update_type_info()
2756 tmp &= ~MAY_BE_LONG; in zend_update_type_info()
2757 tmp |= MAY_BE_DOUBLE; in zend_update_type_info()
2759 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2763 UPDATE_SSA_TYPE(tmp & ~MAY_BE_REF, ssa_ops[i].result_def); in zend_update_type_info()
2770 tmp = (MAY_BE_REF | t2) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2772 tmp |= MAY_BE_NULL; in zend_update_type_info()
2774 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op2_def); in zend_update_type_info()
2777 tmp = (MAY_BE_REF | MAY_BE_RCN | MAY_BE_RC1 | t2) & ~MAY_BE_UNDEF; in zend_update_type_info()
2779 tmp = (MAY_BE_REF | t2) & ~(MAY_BE_UNDEF|MAY_BE_ERROR|MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2782 tmp |= MAY_BE_NULL; in zend_update_type_info()
2784 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2786 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2790 tmp = MAY_BE_REF | MAY_BE_ANY in zend_update_type_info()
2792 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2795 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF in zend_update_type_info()
2797 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2801 tmp = t1; in zend_update_type_info()
2803 tmp |= MAY_BE_RCN; in zend_update_type_info()
2805 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2812 tmp = t2 | MAY_BE_REF; in zend_update_type_info()
2814 tmp = t2 & ~(MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2816 tmp |= MAY_BE_RCN; in zend_update_type_info()
2819 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op2_def); in zend_update_type_info()
2826 tmp = t1 | MAY_BE_REF; in zend_update_type_info()
2828 tmp = t1 & ~(MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2830 tmp |= MAY_BE_RCN; in zend_update_type_info()
2833 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2837 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF in zend_update_type_info()
2839 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2844tmp = (t1 & MAY_BE_UNDEF)|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_… in zend_update_type_info()
2845 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2850tmp = MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_… in zend_update_type_info()
2851 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2856 tmp = t1; in zend_update_type_info()
2858 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2861 tmp |= MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
2865 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
2867 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
2888 tmp = zend_fetch_arg_info(script, arg_info, &ce); in zend_update_type_info()
2892 tmp |= MAY_BE_NULL; in zend_update_type_info()
2895 tmp |= MAY_BE_REF; in zend_update_type_info()
2896 } else if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_update_type_info()
2897 tmp |= MAY_BE_RC1|MAY_BE_RCN; in zend_update_type_info()
2900tmp = MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_… in zend_update_type_info()
2904 tmp = (tmp & (MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) | in zend_update_type_info()
2905 (tmp & func_info->arg_info[opline->op1.num-1].info.type); in zend_update_type_info()
2915 tmp = MAY_BE_UNDEF|MAY_BE_RCN; in zend_update_type_info()
2918 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2978 tmp = MAY_BE_RC1|MAY_BE_RCN|MAY_BE_OBJECT; in zend_update_type_info()
2987 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
2997 tmp = (MAY_BE_REF | t1) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
2999 tmp |= MAY_BE_NULL; in zend_update_type_info()
3002 tmp = (MAY_BE_REF | t1) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
3004 tmp |= MAY_BE_NULL; in zend_update_type_info()
3007 tmp = (MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | t1); in zend_update_type_info()
3009 tmp = t1; in zend_update_type_info()
3011 tmp |= MAY_BE_RCN; in zend_update_type_info()
3014 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3017 tmp = MAY_BE_RC1|MAY_BE_ARRAY; in zend_update_type_info()
3019 tmp |= (t1 & MAY_BE_ANY) << MAY_BE_ARRAY_SHIFT; in zend_update_type_info()
3021 tmp |= MAY_BE_ARRAY_OF_NULL; in zend_update_type_info()
3024 tmp |= MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
3028 tmp |= ssa_var_info[ssa_ops[i].result_use].type; in zend_update_type_info()
3031 tmp |= MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
3034 tmp |= MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
3037 tmp |= MAY_BE_ARRAY_KEY_STRING; in zend_update_type_info()
3040 tmp |= MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
3044 tmp |= MAY_BE_ARRAY_KEY_STRING; in zend_update_type_info()
3047 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3051 tmp = MAY_BE_UNDEF; in zend_update_type_info()
3054 tmp |= MAY_BE_REF; in zend_update_type_info()
3056 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3068 tmp = t1; in zend_update_type_info()
3070 tmp |= MAY_BE_REF; in zend_update_type_info()
3073 tmp |= MAY_BE_RCN; in zend_update_type_info()
3076 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3081 tmp = MAY_BE_REF | (t1 & (MAY_BE_ARRAY | MAY_BE_OBJECT)); in zend_update_type_info()
3083tmp = MAY_BE_RC1 | MAY_BE_RCN | (t1 & (MAY_BE_ARRAY | MAY_BE_OBJECT | MAY_BE_ARRAY_KEY_ANY | MAY_B… in zend_update_type_info()
3085 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3090 tmp = t2; in zend_update_type_info()
3093tmp |= MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
3095tmp |= MAY_BE_REF | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_… in zend_update_type_info()
3100tmp |= MAY_BE_REF | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_… in zend_update_type_info()
3102 tmp |= ((t1 & MAY_BE_ARRAY_OF_ANY) >> MAY_BE_ARRAY_SHIFT); in zend_update_type_info()
3103 if (tmp & MAY_BE_ARRAY) { in zend_update_type_info()
3104 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
3107 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3108 } else if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_update_type_info()
3109 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3113 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op2_def); in zend_update_type_info()
3115 tmp = (ssa_ops[i].result_use >= 0) ? RES_USE_INFO() : 0; in zend_update_type_info()
3117tmp |= MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_… in zend_update_type_info()
3121 tmp |= MAY_BE_LONG; in zend_update_type_info()
3124 tmp |= MAY_BE_STRING | MAY_BE_RCN; in zend_update_type_info()
3127 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3138 tmp = t1 & ~(MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
3144 tmp &= ~(MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE); in zend_update_type_info()
3146 tmp |= MAY_BE_ARRAY | MAY_BE_RC1; in zend_update_type_info()
3149 tmp |= MAY_BE_RC1; in zend_update_type_info()
3151 tmp |= t1 & MAY_BE_RCN; in zend_update_type_info()
3155 tmp |= t1 & (MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
3158 tmp |= MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
3161 tmp |= MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
3164 tmp |= MAY_BE_ARRAY_KEY_STRING; in zend_update_type_info()
3167 tmp |= MAY_BE_ARRAY_KEY_LONG; in zend_update_type_info()
3171 tmp |= MAY_BE_ARRAY_KEY_STRING; in zend_update_type_info()
3176 tmp |= MAY_BE_RC1; in zend_update_type_info()
3179 tmp |= t1 & (MAY_BE_RC1|MAY_BE_RCN); in zend_update_type_info()
3189 tmp |= MAY_BE_ARRAY | MAY_BE_ARRAY_OF_ARRAY; in zend_update_type_info()
3204 tmp |= MAY_BE_ARRAY | MAY_BE_ARRAY_OF_ARRAY; in zend_update_type_info()
3206 tmp |= MAY_BE_ARRAY_OF_OBJECT; in zend_update_type_info()
3217 tmp |= MAY_BE_ARRAY_OF_OBJECT; in zend_update_type_info()
3231 tmp |= MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
3237 if (tmp & MAY_BE_ARRAY_OF_LONG) { in zend_update_type_info()
3239 tmp |= MAY_BE_ARRAY_OF_DOUBLE; in zend_update_type_info()
3240 } else if (!(tmp & (MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_DOUBLE))) { in zend_update_type_info()
3241 tmp |= MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_DOUBLE; in zend_update_type_info()
3254 if ((tmp & MAY_BE_ARRAY) && (tmp & MAY_BE_ARRAY_KEY_ANY)) { in zend_update_type_info()
3255 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3258 tmp = (tmp & (MAY_BE_RC1|MAY_BE_RCN)) | (t1 & ~(MAY_BE_RC1|MAY_BE_RCN)); in zend_update_type_info()
3259 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3264 tmp = zend_array_element_type( in zend_update_type_info()
3273 tmp |= MAY_BE_ERROR; in zend_update_type_info()
3275 tmp |= MAY_BE_ERROR; in zend_update_type_info()
3277 tmp |= MAY_BE_ERROR; in zend_update_type_info()
3280 tmp |= MAY_BE_NULL; in zend_update_type_info()
3282 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3295 tmp = t1; in zend_update_type_info()
3301 tmp &= ~(MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE); in zend_update_type_info()
3302 tmp |= MAY_BE_OBJECT | MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3306 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3310 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
3312 tmp |= MAY_BE_ERROR; in zend_update_type_info()
3315 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3317 tmp |= MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3319 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3337 tmp = zend_get_func_info(call_info, ssa) & ~FUNC_MAY_WARN; in zend_update_type_info()
3338 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3355 tmp = MAY_BE_LONG; in zend_update_type_info()
3357 tmp |= MAY_BE_NULL; in zend_update_type_info()
3359 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3381 tmp = t1; in zend_update_type_info()
3386 tmp = zend_fetch_arg_info(script, ret_info, &ce); in zend_update_type_info()
3387 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_update_type_info()
3388 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3392 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3399 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3415tmp = MAY_BE_ANY | MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_A… in zend_update_type_info()
3416 UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); in zend_update_type_info()
3419 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_update_type_info()
3421 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3423 tmp |= MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN; in zend_update_type_info()
3425 UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); in zend_update_type_info()
3484 uint32_t tmp, worklist_len = zend_bitset_len(ssa_vars_count); in zend_infer_types_ex() local
3494 tmp = get_ssa_var_info(ssa, p->sources[0]); in zend_infer_types_ex()
3498 tmp &= constraint->type_mask; in zend_infer_types_ex()
3499 if ((tmp & MAY_BE_OBJECT) && constraint->ce && ce != constraint->ce) { in zend_infer_types_ex()
3512 UPDATE_SSA_TYPE(tmp, j); in zend_infer_types_ex()
3519 tmp = 0; in zend_infer_types_ex()
3521 tmp |= get_ssa_var_info(ssa, p->sources[i]); in zend_infer_types_ex()
3523 UPDATE_SSA_TYPE(tmp, j); in zend_infer_types_ex()
3822 uint32_t tmp = 0; in zend_func_return_info() local
3867 tmp |= t1; in zend_func_return_info()
4002 ret->type = tmp; in zend_func_return_info()