pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:4872:       if (a->type != b->type) {    if ((a->type == T_VOID) && (bflags & PT_FLAG_CMP_VOIDABLE)) {    b = a;    goto recur;    }    if ((b->type == T_VOID) && (aflags & PT_FLAG_CMP_VOIDABLE)) {    a = b;    goto recur;    } +  if ((a->type == T_ZERO) && (bflags & PT_FLAG_CMP_NULLABLE)) { +  b = a; +  goto recur; +  } +  if ((b->type == T_ZERO) && (aflags & PT_FLAG_CMP_NULLABLE)) { +  a = b; +  goto recur; +  } +  if ((a->type == T_INT) && (bflags & PT_FLAG_CMP_NULLABLE)) { +  b = zero_type_string; +  goto recur; +  } +  if ((b->type == T_INT) && (aflags & PT_FLAG_CMP_NULLABLE)) { +  a = zero_type_string; +  goto recur; +  }       if (b->type == T_MIXED) {    /* NB: a being void has been handled above. */    if (op == PT_BINOP_MINUS) return NULL;    return remap_markers(a, NULL, remap, remap_flags);    }    if (a->type == T_MIXED) {    type_stack_mark();    push_remap_markers(b, NULL, remap,    remap_flags ^ PT_FLAG_REMAP_SWAP_MARKERS);