Lines Matching refs:tmp
653 …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
664 tmp->min = minOR(a, b, c, d); in zend_ssa_range_or()
665 tmp->max = maxOR(a, b, c, d); in zend_ssa_range_or()
668 tmp->min = minOR(a, b, c, -1); in zend_ssa_range_or()
669 tmp->max = maxOR(a, b, 0, d); in zend_ssa_range_or()
672 tmp->min = minOR(a, -1, c, d); in zend_ssa_range_or()
673 tmp->max = maxOR(0, b, c, d); in zend_ssa_range_or()
676 tmp->min = MIN(a, c); in zend_ssa_range_or()
677 tmp->max = maxOR(0, b, 0, d); in zend_ssa_range_or()
680 tmp->min = c; in zend_ssa_range_or()
681 tmp->max = -1; in zend_ssa_range_or()
684 tmp->min = a; in zend_ssa_range_or()
685 tmp->max = -1; in zend_ssa_range_or()
701 …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
712 tmp->min = minAND(a, b, c, d); in zend_ssa_range_and()
713 tmp->max = maxAND(a, b, c, d); in zend_ssa_range_and()
716 tmp->min = 0; in zend_ssa_range_and()
717 tmp->max = b; in zend_ssa_range_and()
720 tmp->min = 0; in zend_ssa_range_and()
721 tmp->max = d; in zend_ssa_range_and()
724 tmp->min = minAND(a, -1, c, -1); in zend_ssa_range_and()
725 tmp->max = MAX(b, d); in zend_ssa_range_and()
728 tmp->min = minAND(a, -1, c, d); in zend_ssa_range_and()
729 tmp->max = maxAND(0, b, c, d); in zend_ssa_range_and()
732 tmp->min = minAND(a, b, c, -1); in zend_ssa_range_and()
733 tmp->max = maxAND(a, b, 0, d); in zend_ssa_range_and()
788 const zend_op *opline, const zend_ssa_op *ssa_op, uint8_t opcode, zend_ssa_range *tmp) { in zend_inference_calc_binary_op_range() argument
801 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
802 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
804 tmp->min = op1_min + op2_min; in zend_inference_calc_binary_op_range()
809 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
810 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
812 tmp->max = op1_max + op2_max; in zend_inference_calc_binary_op_range()
826 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
827 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
829 tmp->min = op1_min - op2_max; in zend_inference_calc_binary_op_range()
834 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
835 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
837 tmp->max = op1_max - op2_min; in zend_inference_calc_binary_op_range()
864 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
865 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
866 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
867 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
869 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
870 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
890 tmp->underflow = 1; in zend_inference_calc_binary_op_range()
891 tmp->overflow = 1; in zend_inference_calc_binary_op_range()
892 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
893 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
901 tmp->min = MIN(MIN(MIN(t1, t2), MIN(t3, t4)), MIN(MIN(t1_, t2_), MIN(t3_, t4_))); in zend_inference_calc_binary_op_range()
902 tmp->max = MAX(MAX(MAX(t1, t2), MAX(t3, t4)), MAX(MAX(t1_, t2_), MAX(t3_, t4_))); in zend_inference_calc_binary_op_range()
913 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
914 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
936 tmp->min = op1_max < op2_abs_min ? op1_min : 0; in zend_inference_calc_binary_op_range()
937 tmp->max = MIN(op1_max, op2_abs_max - 1); in zend_inference_calc_binary_op_range()
939 tmp->min = MAX(op1_min, -op2_abs_max + 1); in zend_inference_calc_binary_op_range()
940 tmp->max = op1_min > -op2_abs_min ? op1_max : 0; in zend_inference_calc_binary_op_range()
942 tmp->min = MAX(op1_min, -op2_abs_max + 1); in zend_inference_calc_binary_op_range()
943 tmp->max = MIN(op1_max, op2_abs_max - 1); in zend_inference_calc_binary_op_range()
955 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
956 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
973 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
974 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
980 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
981 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
993 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
994 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
1021 tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); in zend_inference_calc_binary_op_range()
1022 tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); in zend_inference_calc_binary_op_range()
1033 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
1034 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
1040 zend_ssa_range_or(op1_min, op1_max, op2_min, op2_max, tmp); in zend_inference_calc_binary_op_range()
1051 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_binary_op_range()
1052 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_binary_op_range()
1058 zend_ssa_range_and(op1_min, op1_max, op2_min, op2_max, tmp); in zend_inference_calc_binary_op_range()
1071 …op_array *op_array, const zend_ssa *ssa, int var, int widening, int narrowing, zend_ssa_range *tmp) in zend_inference_calc_range() argument
1081 tmp->underflow = 0; in zend_inference_calc_range()
1082 tmp->min = ZEND_LONG_MAX; in zend_inference_calc_range()
1083 tmp->max = ZEND_LONG_MIN; in zend_inference_calc_range()
1084 tmp->overflow = 0; in zend_inference_calc_range()
1091 *tmp = ssa->var_info[src1].range; in zend_inference_calc_range()
1104 if (!tmp->underflow) { in zend_inference_calc_range()
1112 tmp->min = constraint->range.max + 1; in zend_inference_calc_range()
1118 if (!tmp->overflow) { in zend_inference_calc_range()
1126 tmp->max = constraint->range.min - 1; in zend_inference_calc_range()
1133 tmp->underflow = 1; in zend_inference_calc_range()
1134 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1135 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1136 tmp->overflow = 1; in zend_inference_calc_range()
1148 tmp->min, in zend_inference_calc_range()
1149 tmp->max); in zend_inference_calc_range()
1151 tmp->max >= constraint->range.min) { in zend_inference_calc_range()
1152 tmp->overflow = 0; in zend_inference_calc_range()
1153 tmp->max = constraint->range.min - 1; in zend_inference_calc_range()
1154 LOG_NEG_RANGE(" => [%ld..%ld]\n", tmp->min, tmp->max); in zend_inference_calc_range()
1156 tmp->min <= constraint->range.max) { in zend_inference_calc_range()
1157 tmp->underflow = 0; in zend_inference_calc_range()
1158 tmp->min = constraint->range.max + 1; in zend_inference_calc_range()
1159 LOG_NEG_RANGE(" => [%ld..%ld]\n", tmp->min, tmp->max); in zend_inference_calc_range()
1165 *tmp = ssa->var_info[p->sources[0]].range; in zend_inference_calc_range()
1167 tmp->underflow = constraint->range.underflow && tmp->underflow; in zend_inference_calc_range()
1168 tmp->min = MAX(constraint->range.min, tmp->min); in zend_inference_calc_range()
1171 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow && tmp->underflow; in zend_inference_calc_range()
1173 …tmp->min = MAX(ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min, tmp->min); in zend_inference_calc_range()
1178 tmp->max = MIN(constraint->range.max, tmp->max); in zend_inference_calc_range()
1179 tmp->overflow = constraint->range.overflow && tmp->overflow; in zend_inference_calc_range()
1183 …tmp->max = MIN(ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max, tmp->max); in zend_inference_calc_range()
1185 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow && tmp->overflow; in zend_inference_calc_range()
1190 tmp->underflow = constraint->range.underflow; in zend_inference_calc_range()
1191 tmp->min = constraint->range.min; in zend_inference_calc_range()
1195 tmp->underflow = 1; in zend_inference_calc_range()
1196 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1198 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow; in zend_inference_calc_range()
1199 tmp->min = ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min; in zend_inference_calc_range()
1203 tmp->underflow = 1; in zend_inference_calc_range()
1204 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1207 tmp->max = constraint->range.max; in zend_inference_calc_range()
1208 tmp->overflow = constraint->range.overflow; in zend_inference_calc_range()
1212 tmp->overflow = 1; in zend_inference_calc_range()
1213 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1215 tmp->max = ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max; in zend_inference_calc_range()
1216 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow; in zend_inference_calc_range()
1220 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1221 tmp->overflow = 1; in zend_inference_calc_range()
1229 tmp->underflow |= ssa->var_info[p->sources[i]].range.underflow; in zend_inference_calc_range()
1230 tmp->min = MIN(tmp->min, ssa->var_info[p->sources[i]].range.min); in zend_inference_calc_range()
1231 tmp->max = MAX(tmp->max, ssa->var_info[p->sources[i]].range.max); in zend_inference_calc_range()
1232 tmp->overflow |= ssa->var_info[p->sources[i]].range.overflow; in zend_inference_calc_range()
1234 tmp->underflow = 1; in zend_inference_calc_range()
1235 tmp->min = ZEND_LONG_MIN; in zend_inference_calc_range()
1236 tmp->max = ZEND_LONG_MAX; in zend_inference_calc_range()
1237 tmp->overflow = 1; in zend_inference_calc_range()
1241 return (tmp->min <= tmp->max); in zend_inference_calc_range()
1249 return zend_inference_propagate_range(op_array, ssa, opline, ssa_op, var, tmp); in zend_inference_calc_range()
1252 …onst zend_ssa *ssa, const zend_op *opline, const zend_ssa_op* ssa_op, int var, zend_ssa_range *tmp) in zend_inference_propagate_range() argument
1254 tmp->underflow = 0; in zend_inference_propagate_range()
1255 tmp->overflow = 0; in zend_inference_propagate_range()
1269 op_array, ssa, opline, ssa_op, opline->opcode, tmp); in zend_inference_propagate_range()
1278 tmp->min = ZEND_LONG_MIN; in zend_inference_propagate_range()
1279 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1283 tmp->min = ~op1_max; in zend_inference_propagate_range()
1284 tmp->max = ~op1_min; in zend_inference_propagate_range()
1294 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1295 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1296 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1297 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1304 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1305 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1308 tmp->min = ZEND_LONG_MIN; in zend_inference_propagate_range()
1309 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1322 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1323 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1324 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1325 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1332 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1333 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1334 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1335 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1344 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1345 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1346 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1347 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1356 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1357 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1358 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1359 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1360 if (tmp->max < ZEND_LONG_MAX) { in zend_inference_propagate_range()
1361 tmp->max++; in zend_inference_propagate_range()
1363 tmp->overflow = 1; in zend_inference_propagate_range()
1365 if (tmp->min < ZEND_LONG_MAX && !tmp->underflow) { in zend_inference_propagate_range()
1366 tmp->min++; in zend_inference_propagate_range()
1375 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1376 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1377 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1378 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1379 if (tmp->min > ZEND_LONG_MIN) { in zend_inference_propagate_range()
1380 tmp->min--; in zend_inference_propagate_range()
1382 tmp->underflow = 1; in zend_inference_propagate_range()
1384 if (tmp->max > ZEND_LONG_MIN && !tmp->overflow) { in zend_inference_propagate_range()
1385 tmp->max--; in zend_inference_propagate_range()
1394 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1395 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1396 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1397 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1401 if (tmp->max < ZEND_LONG_MAX) { in zend_inference_propagate_range()
1402 tmp->max++; in zend_inference_propagate_range()
1404 tmp->overflow = 1; in zend_inference_propagate_range()
1406 if (tmp->min < ZEND_LONG_MAX && !tmp->underflow) { in zend_inference_propagate_range()
1407 tmp->min++; in zend_inference_propagate_range()
1416 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1417 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1418 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1419 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1423 if (tmp->min > ZEND_LONG_MIN) { in zend_inference_propagate_range()
1424 tmp->min--; in zend_inference_propagate_range()
1426 tmp->underflow = 1; in zend_inference_propagate_range()
1428 if (tmp->max > ZEND_LONG_MIN && !tmp->overflow) { in zend_inference_propagate_range()
1429 tmp->max--; in zend_inference_propagate_range()
1441 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1442 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1443 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1444 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1452 tmp->min = OP2_MIN_RANGE(); in zend_inference_propagate_range()
1453 tmp->max = OP2_MAX_RANGE(); in zend_inference_propagate_range()
1454 tmp->underflow = OP2_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1455 tmp->overflow = OP2_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1470 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1471 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1472 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1473 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1484 opline->extended_value, tmp); in zend_inference_propagate_range()
1497 tmp->min = OP1_MIN_RANGE(); in zend_inference_propagate_range()
1498 tmp->max = OP1_MAX_RANGE(); in zend_inference_propagate_range()
1499 tmp->underflow = OP1_RANGE_UNDERFLOW(); in zend_inference_propagate_range()
1500 tmp->overflow = OP1_RANGE_OVERFLOW(); in zend_inference_propagate_range()
1515 tmp->underflow = 0; in zend_inference_propagate_range()
1516 tmp->min = ZEND_LONG_MIN; in zend_inference_propagate_range()
1517 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1518 tmp->overflow = 0; in zend_inference_propagate_range()
1530 tmp->min = ZEND_LONG_MIN; in zend_inference_propagate_range()
1532 tmp->min = 0; in zend_inference_propagate_range()
1534 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1539 tmp->min = 0; in zend_inference_propagate_range()
1540 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1544 tmp->min = ZEND_LONG_MIN; in zend_inference_propagate_range()
1545 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1565 *tmp = func_info->return_info.range; in zend_inference_propagate_range()
1575 tmp->underflow = 0; in zend_inference_propagate_range()
1576 tmp->min = 0; in zend_inference_propagate_range()
1577 tmp->max = 0; in zend_inference_propagate_range()
1578 tmp->overflow = 0; in zend_inference_propagate_range()
1580 tmp->min = ZEND_LONG_MIN; in zend_inference_propagate_range()
1581 tmp->max = ZEND_LONG_MAX; in zend_inference_propagate_range()
1584 tmp->min = 1; in zend_inference_propagate_range()
1586 tmp->max = 1; in zend_inference_propagate_range()
1646 zend_ssa_range tmp; in zend_ssa_range_widening() local
1648 if (zend_inference_calc_range(op_array, ssa, var, 1, 0, &tmp)) { in zend_ssa_range_widening()
1649 if (zend_inference_widening_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_widening()
1650 …widening SCC %2d) %2d [%s%ld..%ld%s]\n", scc, var, (tmp.underflow?"-- ":""), tmp.min, tmp.max, (t… in zend_ssa_range_widening()
1691 zend_ssa_range tmp; in zend_ssa_range_narrowing() local
1693 if (zend_inference_calc_range(op_array, ssa, var, 0, 1, &tmp)) { in zend_ssa_range_narrowing()
1694 if (zend_inference_narrowing_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_narrowing()
1695 …narrowing SCC %2d) %2d [%s%ld..%ld%s]\n", scc, var, (tmp.underflow?"-- ":""), tmp.min, tmp.max, (t… in zend_ssa_range_narrowing()
1729 zend_ssa_range tmp; in zend_infer_ranges_warmup() local
1764 if (zend_inference_calc_range(op_array, ssa, j, 0, 0, &tmp)) { in zend_infer_ranges_warmup()
1776 if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1777 tmp.max == ssa->var_info[j].range.max) { in zend_infer_ranges_warmup()
1782 } else if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1783 tmp.max == ssa->var_info[j].range.max + 1 && in zend_infer_ranges_warmup()
1784 tmp.max < constraint->range.min) { in zend_infer_ranges_warmup()
1794 } else if (tmp.max == ssa->var_info[j].range.max && in zend_infer_ranges_warmup()
1795 tmp.min == ssa->var_info[j].range.min - 1 && in zend_infer_ranges_warmup()
1796 tmp.min > constraint->range.max) { in zend_infer_ranges_warmup()
1812 if (zend_inference_narrowing_meet(&ssa->var_info[j], &tmp)) { in zend_infer_ranges_warmup()
1813 …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()
1830 zend_ssa_range tmp; in zend_infer_ranges() local
1858 } else if (zend_inference_calc_range(op_array, ssa, j, 0, 1, &tmp)) { in zend_infer_ranges()
1859 zend_inference_init_range(op_array, ssa, j, tmp.underflow, tmp.min, tmp.max, tmp.overflow); in zend_infer_ranges()
2097 uint32_t tmp = MAY_BE_ARRAY; in zend_array_type_info() local
2102 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_array_type_info()
2104 tmp |= MAY_BE_RCN; in zend_array_type_info()
2108 tmp |= MAY_BE_ARRAY_EMPTY; in zend_array_type_info()
2110 tmp |= MAY_BE_ARRAY_PACKED; in zend_array_type_info()
2112 tmp |= 1 << (Z_TYPE_P(val) + MAY_BE_ARRAY_SHIFT); in zend_array_type_info()
2117 tmp |= MAY_BE_ARRAY_STRING_HASH; in zend_array_type_info()
2119 tmp |= MAY_BE_ARRAY_NUMERIC_HASH; in zend_array_type_info()
2121 tmp |= 1 << (Z_TYPE_P(val) + MAY_BE_ARRAY_SHIFT); in zend_array_type_info()
2124 return tmp; in zend_array_type_info()
2130 uint32_t tmp = 0; in zend_array_element_type() local
2135 …tmp |= MAY_BE_ANY | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_… in zend_array_element_type()
2137 …tmp |= 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()
2140 tmp |= MAY_BE_INDIRECT; in zend_array_element_type()
2145 tmp |= MAY_BE_NULL; in zend_array_element_type()
2147 tmp |= MAY_BE_NULL | ((t1 & MAY_BE_ARRAY_OF_ANY) >> MAY_BE_ARRAY_SHIFT); in zend_array_element_type()
2148 if (tmp & MAY_BE_ARRAY) { in zend_array_element_type()
2149 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in zend_array_element_type()
2151 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_array_element_type()
2154 tmp |= MAY_BE_RCN; in zend_array_element_type()
2156 tmp |= MAY_BE_RC1; in zend_array_element_type()
2159 tmp |= MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN; in zend_array_element_type()
2161 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_array_element_type()
2166 tmp |= MAY_BE_INDIRECT; in zend_array_element_type()
2170 tmp |= MAY_BE_STRING | MAY_BE_RC1; in zend_array_element_type()
2172 tmp |= MAY_BE_NULL; in zend_array_element_type()
2176 tmp |= MAY_BE_NULL; in zend_array_element_type()
2178 tmp |= MAY_BE_INDIRECT; in zend_array_element_type()
2183 tmp |= MAY_BE_NULL; in zend_array_element_type()
2186 return tmp; in zend_array_element_type()
2191 uint32_t tmp = 0; in assign_dim_array_result_type() local
2200 tmp |= MAY_BE_ARRAY_PACKED; in assign_dim_array_result_type()
2202 tmp |= MAY_BE_HASH_ONLY(arr_type) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG; in assign_dim_array_result_type()
2206 tmp |= MAY_BE_ARRAY_PACKED; in assign_dim_array_result_type()
2208 tmp |= MAY_BE_HASH_ONLY(arr_type) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG; in assign_dim_array_result_type()
2211 tmp |= MAY_BE_ARRAY_KEY_STRING; in assign_dim_array_result_type()
2215 tmp |= MAY_BE_ARRAY_PACKED; in assign_dim_array_result_type()
2217 tmp |= MAY_BE_HASH_ONLY(arr_type) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG; in assign_dim_array_result_type()
2221 tmp |= MAY_BE_ARRAY_KEY_STRING; in assign_dim_array_result_type()
2227 if (tmp & MAY_BE_ARRAY_KEY_ANY) { in assign_dim_array_result_type()
2228 tmp |= (value_type & MAY_BE_ANY) << MAY_BE_ARRAY_SHIFT; in assign_dim_array_result_type()
2230 tmp &= ~MAY_BE_ARRAY_EMPTY; in assign_dim_array_result_type()
2231 return tmp; in assign_dim_array_result_type()
2236 uint32_t tmp = arr_type & ~(MAY_BE_RC1|MAY_BE_RCN); in assign_dim_result_type() local
2239 tmp &= ~(MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE); in assign_dim_result_type()
2240 tmp |= MAY_BE_ARRAY|MAY_BE_RC1; in assign_dim_result_type()
2242 if (tmp & (MAY_BE_ARRAY|MAY_BE_STRING)) { in assign_dim_result_type()
2243 tmp |= MAY_BE_RC1; in assign_dim_result_type()
2245 if (tmp & (MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in assign_dim_result_type()
2246 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in assign_dim_result_type()
2248 if (tmp & MAY_BE_ARRAY) { in assign_dim_result_type()
2249 tmp |= assign_dim_array_result_type(arr_type, dim_type, value_type, dim_op_type); in assign_dim_result_type()
2251 return tmp; in assign_dim_result_type()
2258 uint32_t tmp = 0; in binary_op_result_type() local
2267 tmp |= MAY_BE_OBJECT | MAY_BE_FALSE | MAY_BE_RC1; in binary_op_result_type()
2279 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2281 tmp |= MAY_BE_LONG; in binary_op_result_type()
2284 tmp |= MAY_BE_DOUBLE; in binary_op_result_type()
2286 tmp |= MAY_BE_ARRAY | MAY_BE_RC1; in binary_op_result_type()
2287 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2288 tmp |= t2 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2290 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2292 tmp |= MAY_BE_ARRAY | MAY_BE_RC1; in binary_op_result_type()
2293 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2294 tmp |= t2 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in binary_op_result_type()
2306 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2308 tmp |= MAY_BE_LONG; in binary_op_result_type()
2311 tmp |= MAY_BE_DOUBLE; in binary_op_result_type()
2313 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2319 tmp |= MAY_BE_DOUBLE; in binary_op_result_type()
2321 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in binary_op_result_type()
2327 tmp |= MAY_BE_LONG; in binary_op_result_type()
2334 tmp |= MAY_BE_STRING | MAY_BE_RC1 | MAY_BE_RCN; in binary_op_result_type()
2337 tmp |= MAY_BE_LONG; in binary_op_result_type()
2342 tmp |= MAY_BE_LONG; in binary_op_result_type()
2347 tmp = MAY_BE_STRING | MAY_BE_RC1 | MAY_BE_RCN; in binary_op_result_type()
2351 return tmp; in binary_op_result_type()
2381 uint32_t tmp = zend_convert_type_declaration_mask(ZEND_TYPE_PURE_MASK(type)); in zend_convert_type() local
2383 tmp |= MAY_BE_OBJECT; in zend_convert_type()
2395 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in zend_convert_type()
2396 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in zend_convert_type()
2398 return tmp; in zend_convert_type()
2535 uint32_t tmp, orig; in _zend_update_type_info() local
2561 tmp = 0; in _zend_update_type_info()
2563 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2566 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2569 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
2577 UPDATE_SSA_TYPE(tmp, (ssa_op+1)->op1_def); in _zend_update_type_info()
2596 tmp = binary_op_result_type(ssa, opline->opcode, t1, t2, ssa_op->result_def, optimization_level); in _zend_update_type_info()
2597 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2600 tmp = 0; in _zend_update_type_info()
2602 tmp |= MAY_BE_STRING | MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
2605 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2610 tmp |= MAY_BE_OBJECT | MAY_BE_RC1; in _zend_update_type_info()
2613 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2644 tmp = t1; in _zend_update_type_info()
2648 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2651 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2653 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2656 tmp = 1 << opline->extended_value; in _zend_update_type_info()
2657 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in _zend_update_type_info()
2658 if ((tmp & MAY_BE_ANY) == (t1 & MAY_BE_ANY)) { in _zend_update_type_info()
2659 tmp |= (t1 & MAY_BE_RC1) | MAY_BE_RCN; in _zend_update_type_info()
2663 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
2666 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
2668 tmp |= MAY_BE_RC1; in _zend_update_type_info()
2671 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2677 tmp |= MAY_BE_ARRAY_EMPTY; in _zend_update_type_info()
2680 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF); in _zend_update_type_info()
2683 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
2685 …tmp |= ((t1 & (MAY_BE_ANY - MAY_BE_NULL)) << MAY_BE_ARRAY_SHIFT) | ((t1 & MAY_BE_NULL) ? MAY_BE_AR… in _zend_update_type_info()
2688 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2695 tmp = t1; in _zend_update_type_info()
2697 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2699 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2702 tmp = t1 & ~MAY_BE_UNDEF; in _zend_update_type_info()
2704 tmp &= ~MAY_BE_REF; in _zend_update_type_info()
2707 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2710 tmp |= (t1 & (MAY_BE_RC1|MAY_BE_RCN)); in _zend_update_type_info()
2712 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2717 tmp &= ~MAY_BE_NULL; in _zend_update_type_info()
2720 tmp &= ~MAY_BE_FALSE; in _zend_update_type_info()
2723 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2730 tmp = MAY_BE_NULL; in _zend_update_type_info()
2732 tmp = MAY_BE_FALSE; in _zend_update_type_info()
2735 tmp = MAY_BE_TRUE; in _zend_update_type_info()
2737 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2747 tmp = 0; in _zend_update_type_info()
2755 tmp |= MAY_BE_REF; in _zend_update_type_info()
2766 tmp |= MAY_BE_REF; in _zend_update_type_info()
2770 tmp |= binary_op_result_type( in _zend_update_type_info()
2773 if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY)) { in _zend_update_type_info()
2774 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
2776 if (tmp & (MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in _zend_update_type_info()
2777 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
2782 orig = assign_dim_result_type(orig, OP2_INFO(), tmp, opline->op2_type); in _zend_update_type_info()
2795 if (opline->opcode == ZEND_ASSIGN_OP && ssa_op->result_def >= 0 && (tmp & MAY_BE_RC1)) { in _zend_update_type_info()
2796 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2798 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2806 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2810 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2815 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2817 if (tmp & MAY_BE_REF) { in _zend_update_type_info()
2819 tmp |= MAY_BE_ANY; in _zend_update_type_info()
2826 && (tmp & (MAY_BE_LONG|MAY_BE_DOUBLE)) == MAY_BE_DOUBLE) { in _zend_update_type_info()
2828 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2829 tmp &= ~MAY_BE_DOUBLE; in _zend_update_type_info()
2831 && (tmp & (MAY_BE_LONG|MAY_BE_DOUBLE))) { in _zend_update_type_info()
2833 tmp |= MAY_BE_STRING; in _zend_update_type_info()
2834 tmp &= ~(MAY_BE_LONG|MAY_BE_DOUBLE); in _zend_update_type_info()
2836 tmp &= t1; in _zend_update_type_info()
2838 tmp |= MAY_BE_LONG | MAY_BE_STRING; in _zend_update_type_info()
2845 && (tmp & (MAY_BE_LONG|MAY_BE_DOUBLE)) == MAY_BE_DOUBLE) { in _zend_update_type_info()
2847 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2848 tmp &= ~MAY_BE_DOUBLE; in _zend_update_type_info()
2850 && (tmp & (MAY_BE_LONG|MAY_BE_DOUBLE))) { in _zend_update_type_info()
2852 tmp |= MAY_BE_STRING; in _zend_update_type_info()
2853 tmp &= ~(MAY_BE_LONG|MAY_BE_DOUBLE); in _zend_update_type_info()
2855 tmp &= t1; in _zend_update_type_info()
2857 tmp |= MAY_BE_LONG | MAY_BE_STRING; in _zend_update_type_info()
2860 if (tmp & MAY_BE_REF) { in _zend_update_type_info()
2862 tmp |= MAY_BE_ANY; in _zend_update_type_info()
2865 tmp &= ~MAY_BE_REF; in _zend_update_type_info()
2866 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2875 tmp = 0; in _zend_update_type_info()
2877 tmp |= MAY_BE_RC1; in _zend_update_type_info()
2879 tmp |= MAY_BE_RCN; in _zend_update_type_info()
2891 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in _zend_update_type_info()
2893 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2898 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2900 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2904 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in _zend_update_type_info()
2907 tmp |= MAY_BE_DOUBLE; in _zend_update_type_info()
2910 tmp |= MAY_BE_STRING | MAY_BE_LONG | MAY_BE_DOUBLE; in _zend_update_type_info()
2912 tmp |= t1 & (MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_OBJECT); in _zend_update_type_info()
2915 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2919 tmp |= MAY_BE_REF; in _zend_update_type_info()
2921 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2927 tmp = 0; in _zend_update_type_info()
2929 tmp |= MAY_BE_RC1|MAY_BE_RCN; in _zend_update_type_info()
2931 tmp |= t1 & ~(MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_RCN); in _zend_update_type_info()
2933 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2935 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2937 tmp = 0; in _zend_update_type_info()
2939 tmp |= MAY_BE_REF; in _zend_update_type_info()
2942 tmp |= MAY_BE_RC1; in _zend_update_type_info()
2953 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in _zend_update_type_info()
2955 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2960 tmp |= MAY_BE_LONG; in _zend_update_type_info()
2962 tmp |= MAY_BE_NULL; in _zend_update_type_info()
2966 tmp |= MAY_BE_LONG | MAY_BE_DOUBLE; in _zend_update_type_info()
2969 tmp |= MAY_BE_DOUBLE; in _zend_update_type_info()
2972 tmp |= MAY_BE_STRING | MAY_BE_LONG | MAY_BE_DOUBLE; in _zend_update_type_info()
2974 …tmp |= t1 & (MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_RESOURCE | MAY_BE_ARRAY | MAY_BE_OBJECT | MAY_BE_… in _zend_update_type_info()
2977 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2982 tmp = assign_dim_result_type(t1, t2, OP1_DATA_INFO(), opline->op2_type); in _zend_update_type_info()
2983 …tmp |= ssa->var_info[ssa_op->op1_def].type & (MAY_BE_ARRAY_PACKED|MAY_BE_ARRAY_NUMERIC_HASH|MAY_BE… in _zend_update_type_info()
2984 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2988 tmp = 0; in _zend_update_type_info()
2990 tmp |= MAY_BE_STRING | MAY_BE_NULL; in _zend_update_type_info()
2993 tmp |= (MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF); in _zend_update_type_info()
2996 …tmp |= (OP1_DATA_INFO() & (MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_… in _zend_update_type_info()
2999 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3003 tmp |= MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING; in _zend_update_type_info()
3007 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3009 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3010 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3015 tmp = OP1_INFO(); in _zend_update_type_info()
3016 if (tmp & (MAY_BE_ANY | MAY_BE_REF)) { in _zend_update_type_info()
3017 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3018 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3021 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3033 …tmp = (t1 & (MAY_BE_REF|MAY_BE_OBJECT|MAY_BE_RC1|MAY_BE_RCN))|(add_rc ? (MAY_BE_RC1|MAY_BE_RCN) : … in _zend_update_type_info()
3034 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3039 tmp = zend_fetch_prop_type(script, in _zend_update_type_info()
3041 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3049 tmp = OP1_INFO(); in _zend_update_type_info()
3050 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3051 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3053 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3058 …tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_RC1 |… in _zend_update_type_info()
3059 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3064 tmp = OP1_INFO(); in _zend_update_type_info()
3065 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3066 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3068 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3076 tmp = (t1 & (MAY_BE_REF|MAY_BE_OBJECT))|MAY_BE_RC1|MAY_BE_RCN; in _zend_update_type_info()
3077 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3082 …tmp = MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_A… in _zend_update_type_info()
3083 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3088 tmp = t2; in _zend_update_type_info()
3089 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3090 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3092 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3094 tmp = t2 & ~(MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3096 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3099 tmp |= MAY_BE_REF; in _zend_update_type_info()
3102 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3104 tmp |= t2 & (MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3106 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3108 if (RETURN_VALUE_USED(opline) && (tmp & MAY_BE_RC1)) { in _zend_update_type_info()
3109 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3113 tmp &= ~MAY_BE_LONG; in _zend_update_type_info()
3114 tmp |= MAY_BE_DOUBLE; in _zend_update_type_info()
3116 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3120 if (tmp & MAY_BE_REF) { in _zend_update_type_info()
3122 tmp &= ~MAY_BE_REF; in _zend_update_type_info()
3123 …tmp |= MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING|MAY_BE_RC1|MAY… in _zend_update_type_info()
3125 if ((tmp & (MAY_BE_RC1|MAY_BE_RCN)) == MAY_BE_RCN) { in _zend_update_type_info()
3130 tmp |= MAY_BE_RC1; in _zend_update_type_info()
3135 tmp |= MAY_BE_RC1; in _zend_update_type_info()
3139 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3146 tmp = (MAY_BE_REF | t2) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3148 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3150 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3153 tmp = (MAY_BE_REF | MAY_BE_RCN | MAY_BE_RC1 | t2) & ~MAY_BE_UNDEF; in _zend_update_type_info()
3155 tmp = (MAY_BE_REF | t2) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3158 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3160 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3162 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3167 tmp = t1; in _zend_update_type_info()
3168 if (tmp & MAY_BE_OBJECT) { in _zend_update_type_info()
3169 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3171 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3177 tmp = (MAY_BE_REF | MAY_BE_RCN | MAY_BE_RC1 | t2) & ~MAY_BE_UNDEF; in _zend_update_type_info()
3179 tmp = (MAY_BE_REF | t2) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3182 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3185 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3190 tmp = (MAY_BE_REF | t2) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3192 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3194 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3208 tmp = MAY_BE_REF | MAY_BE_ANY in _zend_update_type_info()
3210 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3213 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF in _zend_update_type_info()
3216 tmp |= MAY_BE_UNDEF; in _zend_update_type_info()
3218 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3221 …tmp = MAY_BE_UNDEF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF… in _zend_update_type_info()
3222 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3226 tmp = t1; in _zend_update_type_info()
3228 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3230 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3237 tmp = t2 | MAY_BE_REF; in _zend_update_type_info()
3239 tmp = t2 & ~(MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3241 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3244 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3251 tmp = t1 | MAY_BE_REF; in _zend_update_type_info()
3253 tmp = t1 & ~(MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3255 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3258 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3262 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF in _zend_update_type_info()
3264 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3270 …tmp = (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()
3271 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3276 …tmp = 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()
3277 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3282 tmp = t1; in _zend_update_type_info()
3284 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3287 tmp |= MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3291 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3293 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3310 tmp = zend_fetch_arg_info_type(script, arg_info, &ce); in _zend_update_type_info()
3312 tmp |= MAY_BE_REF; in _zend_update_type_info()
3317 uint32_t elem_type = tmp & MAY_BE_REF in _zend_update_type_info()
3319 : (tmp & MAY_BE_ANY) << MAY_BE_ARRAY_SHIFT; in _zend_update_type_info()
3320 tmp = MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_ANY|elem_type; in _zend_update_type_info()
3324 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3380 tmp = MAY_BE_RC1|MAY_BE_RCN|MAY_BE_OBJECT; in _zend_update_type_info()
3397 tmp &= ~MAY_BE_RCN; in _zend_update_type_info()
3399 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3409 tmp = (MAY_BE_REF | t1) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3411 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3414 tmp = (MAY_BE_REF | t1) & ~(MAY_BE_UNDEF|MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3416 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3419 tmp = (MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | t1); in _zend_update_type_info()
3421 tmp = t1; in _zend_update_type_info()
3423 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3426 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3435 tmp = MAY_BE_RC1|MAY_BE_ARRAY|arr_type; in _zend_update_type_info()
3437 tmp |= MAY_BE_ARRAY_EMPTY; in _zend_update_type_info()
3442 tmp |= assign_dim_array_result_type(arr_type, t2, t1, opline->op2_type); in _zend_update_type_info()
3444 tmp |= MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3447 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3451 tmp = ssa_var_info[ssa_op->result_use].type; in _zend_update_type_info()
3452 ZEND_ASSERT(tmp & MAY_BE_ARRAY); in _zend_update_type_info()
3453 tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF); in _zend_update_type_info()
3455 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY; in _zend_update_type_info()
3457 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3460 tmp = MAY_BE_UNDEF; in _zend_update_type_info()
3463 tmp |= MAY_BE_REF; in _zend_update_type_info()
3465 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3477 tmp = t1; in _zend_update_type_info()
3479 tmp |= MAY_BE_REF; in _zend_update_type_info()
3481 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3483 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3488 tmp = MAY_BE_REF | (t1 & (MAY_BE_ARRAY | MAY_BE_OBJECT)); in _zend_update_type_info()
3490 …tmp = 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()
3494 tmp |= MAY_BE_UNDEF; in _zend_update_type_info()
3496 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3501 tmp = 0; in _zend_update_type_info()
3503 tmp = t2 & MAY_BE_REF; in _zend_update_type_info()
3507 … tmp |= 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()
3509 … tmp |= MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3511 tmp |= MAY_BE_REF; in _zend_update_type_info()
3517 …tmp |= 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()
3519 tmp |= ((t1 & MAY_BE_ARRAY_OF_ANY) >> MAY_BE_ARRAY_SHIFT); in _zend_update_type_info()
3520 if (tmp & MAY_BE_ARRAY) { in _zend_update_type_info()
3521 tmp |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3524 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3526 tmp |= MAY_BE_REF; in _zend_update_type_info()
3528 } else if (tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) { in _zend_update_type_info()
3529 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
3533 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3535 tmp = (ssa_op->result_use >= 0) ? RES_USE_INFO() : 0; in _zend_update_type_info()
3537 …tmp |= 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()
3541 tmp |= MAY_BE_LONG; in _zend_update_type_info()
3544 tmp |= MAY_BE_STRING | MAY_BE_RCN; in _zend_update_type_info()
3547 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3560 tmp = t1 & ~(MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3567 tmp &= ~(MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE); in _zend_update_type_info()
3569 tmp |= MAY_BE_ARRAY | MAY_BE_RC1; in _zend_update_type_info()
3572 tmp |= MAY_BE_RC1; in _zend_update_type_info()
3574 tmp |= t1 & MAY_BE_RCN; in _zend_update_type_info()
3578 tmp |= t1 & (MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3617 tmp |= MAY_BE_RC1; in _zend_update_type_info()
3620 tmp |= t1 & (MAY_BE_RC1|MAY_BE_RCN); in _zend_update_type_info()
3631 tmp |= key_type | MAY_BE_ARRAY | MAY_BE_ARRAY_OF_NULL; in _zend_update_type_info()
3639 tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3646 tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3658 tmp |= key_type | MAY_BE_ARRAY | MAY_BE_ARRAY_OF_ARRAY; in _zend_update_type_info()
3673 tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3679 if (tmp & MAY_BE_ARRAY_OF_LONG) { in _zend_update_type_info()
3681 tmp |= key_type | MAY_BE_ARRAY_OF_DOUBLE; in _zend_update_type_info()
3682 } else if (!(tmp & (MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_DOUBLE))) { in _zend_update_type_info()
3683 tmp |= key_type | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_DOUBLE; in _zend_update_type_info()
3711 tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
3716 tmp &= ~MAY_BE_ARRAY_EMPTY; in _zend_update_type_info()
3719 if (!(tmp & MAY_BE_ARRAY) in _zend_update_type_info()
3720 || (tmp & MAY_BE_ARRAY_KEY_ANY) in _zend_update_type_info()
3726 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3734 tmp = zend_array_element_type( in _zend_update_type_info()
3741 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3744 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3746 if ((tmp & (MAY_BE_RC1|MAY_BE_RCN)) == MAY_BE_RCN && opline->result_type == IS_TMP_VAR) { in _zend_update_type_info()
3751 tmp |= MAY_BE_RC1; in _zend_update_type_info()
3756 tmp |= MAY_BE_RC1; in _zend_update_type_info()
3760 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3775 uint32_t tmp = 0; in _zend_update_type_info() local
3779 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3783 tmp |= zend_fetch_prop_type(script, prop_info, &ce); in _zend_update_type_info()
3785 tmp |= MAY_BE_REF | MAY_BE_INDIRECT; in _zend_update_type_info()
3787 tmp |= MAY_BE_UNDEF; in _zend_update_type_info()
3804 tmp &= ~MAY_BE_RC1; in _zend_update_type_info()
3808 tmp |= MAY_BE_NULL; in _zend_update_type_info()
3812 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3824 tmp = zend_fetch_prop_type(script, in _zend_update_type_info()
3828 tmp |= MAY_BE_REF | MAY_BE_INDIRECT; in _zend_update_type_info()
3830 tmp |= MAY_BE_UNDEF; in _zend_update_type_info()
3835 tmp &= ~MAY_BE_RC1; in _zend_update_type_info()
3838 tmp |= MAY_BE_UNDEF; in _zend_update_type_info()
3841 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3851 tmp = ssa->var_info[ssa_op->op1_use].type; in _zend_update_type_info()
3852 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3853 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3855 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3859 tmp = ssa->var_info[ssa_op->op2_use].type; in _zend_update_type_info()
3860 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3861 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3863 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3869 tmp = ssa->var_info[next_ssa_op->op1_use].type; in _zend_update_type_info()
3870 if (tmp & MAY_BE_RC1) { in _zend_update_type_info()
3871 tmp |= MAY_BE_RCN; in _zend_update_type_info()
3873 UPDATE_SSA_TYPE(tmp, next_ssa_op->op1_def); in _zend_update_type_info()
3896 tmp = zend_get_func_info(call_info, ssa, &ce, &ce_is_instanceof); in _zend_update_type_info()
3897 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3943 tmp = 0; in _zend_update_type_info()
3945 tmp |= MAY_BE_TRUE; in _zend_update_type_info()
3947 tmp |= MAY_BE_FALSE; in _zend_update_type_info()
3951 tmp |= MAY_BE_FALSE; in _zend_update_type_info()
3953 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3961 tmp = t1; in _zend_update_type_info()
3965 tmp = zend_fetch_arg_info_type(script, ret_info, &ce); in _zend_update_type_info()
3966 if ((tmp & MAY_BE_NULL) && opline->op1_type == IS_CV) { in _zend_update_type_info()
3967 tmp |= MAY_BE_UNDEF; in _zend_update_type_info()
3969 tmp |= (t1 & MAY_BE_INDIRECT); in _zend_update_type_info()
3972 uint32_t extra_types = t1 & ~tmp; in _zend_update_type_info()
3974 tmp &= t1; in _zend_update_type_info()
3978 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3985 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3994 …tmp = 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()
3995 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3997 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
4021 tmp = zend_fetch_prop_type(script, prop_info, &prop_ce); in _zend_update_type_info()
4023 if (tmp & MAY_BE_OBJECT) { in _zend_update_type_info()
4026 tmp &= MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING|MAY_BE_BOOL|MAY_BE_NULL; in _zend_update_type_info()
4027 if (tmp & MAY_BE_STRING) { in _zend_update_type_info()
4028 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
4030 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
4067 …tmp = 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()
4068 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
4072 tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; in _zend_update_type_info()
4077 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
4079 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
4082 tmp |= MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
4084 tmp |= MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN; in _zend_update_type_info()
4102 tmp |= MAY_BE_INDIRECT; in _zend_update_type_info()
4106 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
4190 uint32_t tmp, worklist_len = zend_bitset_len(ssa_vars_count); in zend_infer_types_ex() local
4202 tmp = get_ssa_var_info(ssa, p->sources[0]); in zend_infer_types_ex()
4206 tmp &= constraint->type_mask; in zend_infer_types_ex()
4207 if (!(tmp & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { in zend_infer_types_ex()
4208 tmp &= ~(MAY_BE_RC1|MAY_BE_RCN); in zend_infer_types_ex()
4210 if ((tmp & MAY_BE_OBJECT) && constraint->ce && ce != constraint->ce) { in zend_infer_types_ex()
4223 UPDATE_SSA_TYPE(tmp, j); in zend_infer_types_ex()
4224 if (tmp & MAY_BE_REF) { in zend_infer_types_ex()
4234 tmp = 0; in zend_infer_types_ex()
4236 tmp |= get_ssa_var_info(ssa, p->sources[i]); in zend_infer_types_ex()
4238 UPDATE_SSA_TYPE(tmp, j); in zend_infer_types_ex()
4564 uint32_t tmp = 0; in zend_func_return_info() local
4614 tmp |= t1; in zend_func_return_info()
4704 ret->type &= tmp; in zend_func_return_info()