pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:2806:    bitmask |= 1 << idx;    }    }    if (bitmask) {    emit1(F_SAVE_LOCALS, (offset << 16) | bitmask);    }    }   }      /* Used to generate code for functions. */ - INT32 do_code_block(node *n) + INT32 do_code_block(node *n, int identifier_flags)   {    struct compilation *c = THIS_COMPILATION;    struct reference *id = NULL; -  struct identifier *i = NULL; +     INT32 entry_point;    int aggregate_cnum = -1;   #ifdef PIKE_DEBUG    if (current_stack_depth != -4711) Pike_fatal("Reentrance in do_code_block().\n");    current_stack_depth = 0;   #endif       if (Pike_compiler->compiler_frame->current_function_number >= 0) {    id = Pike_compiler->new_program->identifier_references +    Pike_compiler->compiler_frame->current_function_number; -  i = ID_FROM_PTR(Pike_compiler->new_program, id); +     }       init_bytecode();    label_no=1;       /* NOTE: This is no ordinary label... */    low_insert_label(0);    emit0(F_ENTRY);    emit0(F_START_FUNCTION);       if (Pike_compiler->compiler_frame->num_args) {    emit2(F_FILL_STACK, Pike_compiler->compiler_frame->num_args, 1);    }    emit1(F_MARK_AT, Pike_compiler->compiler_frame->num_args); -  if (i && i->identifier_flags & IDENTIFIER_VARARGS) { +  if (identifier_flags & IDENTIFIER_VARARGS) {    struct svalue *sval =    simple_mapping_string_lookup(get_builtin_constants(), "aggregate");    if (!sval) {    yyerror("predef::aggregate() is missing.\n");    Pike_fatal("No aggregate!\n");    UNREACHABLE(return 0);    }    aggregate_cnum = store_constant(sval, 0, NULL);    emit1(F_CALL_BUILTIN, aggregate_cnum);    if (Pike_compiler->compiler_frame->max_number_of_locals !=
pike.git/src/docode.c:2893:       /* NOTE: This is no ordinary label... */    low_insert_label(Pike_compiler->compiler_frame->recur_label);    emit0(F_ENTRY);    emit0(F_START_FUNCTION);       if (Pike_compiler->compiler_frame->num_args) {    emit2(F_FILL_STACK, Pike_compiler->compiler_frame->num_args, 1);    }    emit1(F_MARK_AT, Pike_compiler->compiler_frame->num_args); -  if (i && i->identifier_flags & IDENTIFIER_VARARGS) { +  if (identifier_flags & IDENTIFIER_VARARGS) {    emit1(F_CALL_BUILTIN, aggregate_cnum);    if (Pike_compiler->compiler_frame->max_number_of_locals !=    Pike_compiler->compiler_frame->num_args+1) {    emit2(F_FILL_STACK,    Pike_compiler->compiler_frame->max_number_of_locals, 0);    }    emit2(F_INIT_FRAME, Pike_compiler->compiler_frame->num_args+1,    Pike_compiler->compiler_frame->max_number_of_locals);    } else {    emit0(F_POP_TO_MARK);