pike.git
/
src
/
pike_types.cmod
version
»
Context lines:
10
20
40
80
file
none
3
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: