pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:3303:    t = t2;    ret = 1;    }    break;    }    }    if (!elem_on_stack) {    if (t) {    push_finished_type(t);    } else { -  push_type(T_ZERO); +  push_type(PIKE_T_UNKNOWN);    }    } else if (!t) {    /* No need to do anything. */    } else if ((top = peek_type_stack())->type != t->type) {    if (zero_implied && (top->type == T_ZERO)) {    Pike_compiler->type_stackp--;    free_type(top);    push_finished_type(t);    } else if (zero_implied && (t->type == T_ZERO)) {    /* The zero is implied. */    } else {    push_finished_type(t);    }    } else if (t == top) {    /* No need to do anything. */    } else { -  switch(t->type) { +  switch(t?t->type:PIKE_T_UNKNOWN) {    case T_FLOAT:    case T_MIXED:    case T_VOID:    case T_ZERO:    /* There can only be one. */    break;    case T_INT:    {    INT32 min1 = CAR_TO_INT(t);    INT32 max1 = CDR_TO_INT(t);
pike.git/src/pike_types.cmod:3447:   }      static void low_or_pike_types(struct pike_type *t1,    struct pike_type *t2,    int zero_implied)   {   #ifdef PIKE_DEBUG    struct pike_type *arg1 = t1;    struct pike_type *arg2 = t2;   #endif +  check_c_stack(1024);   #if 0    fprintf(stderr, " low_or_pike_types(");    simple_describe_type(t1);    fprintf(stderr, ", ");    simple_describe_type(t2);    fprintf(stderr, ")\n");   #endif    if(!t1)    {    if(!t2)