pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:2784:       default:    Pike_fatal("Infernal compiler error (unknown parse-tree-token %d).\n", n->token);    UNREACHABLE(return 0);    }   }      static void emit_save_locals(struct compiler_frame *f)   {    struct compilation *c = THIS_COMPILATION; -  INT16 offset; -  INT16 idx; -  INT16 num_locals = f->max_number_of_locals; +  unsigned INT16 offset; +  unsigned INT16 idx; +  int num_locals = f->max_number_of_locals;       for (offset = 0; offset < (num_locals >> 4) + 1; offset++) { -  INT16 bitmask = 0; +  unsigned int bitmask = 0;    for (idx = 0; idx < 16; idx++) { -  INT16 local_var_idx = offset * 16 + idx; +  int local_var_idx = offset * 16 + idx;    if (local_var_idx >= num_locals) {    break;    }    if (f->variable[local_var_idx].flags & LOCAL_VAR_USED_IN_SCOPE) {    bitmask |= 1 << idx;    }    }    if (bitmask) { -  emit1(F_SAVE_LOCALS, (offset << 16) + bitmask); +  emit1(F_SAVE_LOCALS, (offset << 16) | bitmask);    }    }   }      /* Used to generate code for functions. */   INT32 do_code_block(node *n)   {    struct compilation *c = THIS_COMPILATION;    struct reference *id = NULL;    struct identifier *i = NULL;