pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:13752:    (unsigned INT32)min1,    (unsigned INT32)max1,    (unsigned INT32)min2,    (unsigned INT32)max2);    maxres = (INT32)evaluate_binop_max(op,    (unsigned INT32)min1,    (unsigned INT32)max1,    (unsigned INT32)min2,    (unsigned INT32)max2);    break; +  case PIKE_T_INT_OP_RANGE: +  minres = min1; +  maxres = max2; +  break;    default:    Pike_fatal("low_type_int_op(): Unknown operator: 0x%04x\n", op);    break;    }       if (minres < MIN_INT32) minres = MIN_INT32;    else if (minres > MAX_INT32) minres = MAX_INT32;       if (maxres < MIN_INT32) maxres = MIN_INT32;    else if (maxres > MAX_INT32) maxres = MAX_INT32;    -  +  if (minres > maxres) { +  return NULL; +  } +     type_stack_mark();    push_int_type(minres, maxres);    return pop_unfinished_type();   }      struct pike_type *type_int_op(enum PIKE_TYPE op,    struct pike_type *arg1,    struct pike_type *arg2)   {    while (1) {
pike.git/src/pike_types.cmod:13841:    switch(op) {    case PIKE_T_GET_RETURN:    res = new_get_return_type(arg1, 0);    break;    case PIKE_T_FIND_LFUN:    res = find_lfun_type(arg1, (ptrdiff_t)(void*)arg2);    break;    case PIKE_T_INT_OP_SUB:    case PIKE_T_INT_OP_AND:    case PIKE_T_INT_OP_XOR: +  case PIKE_T_INT_OP_RANGE:    res = type_int_op(op, arg1, arg2);    break;    case PIKE_T_SET_CAR:    if (!arg1) return NULL;    switch(arg1->type) {    case PIKE_T_FUNCTION:    case PIKE_T_MANY:    case PIKE_T_RING:    case PIKE_T_TUPLE:    case PIKE_T_MAPPING: