pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:3020:    struct statement_label *save_label;    int tmp1, tmp2;       if (Pike_compiler->compiler_frame->current_function_number >= 0) {    id = Pike_compiler->new_program->identifier_references +    Pike_compiler->compiler_frame->current_function_number;    }       init_bytecode();    label_no=1; +  save_label = current_label; +  current_label = NULL;    PUSH_STATEMENT_LABEL; -  save_label = current_label->prev; -  current_label->prev = NULL; +     PUSH_CLEANUP_FRAME(NULL, NULL);    current_stack_depth = 0;       /* NOTE: This is no ordinary label... */    low_insert_label(0);    emit0(F_ENTRY);    emit0(F_START_FUNCTION);       if (Pike_compiler->compiler_frame->generator_local != -1) {    INT32 e, states;
pike.git/src/docode.c:3244:    if (Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPE_USED) {    emit_save_locals(Pike_compiler->compiler_frame);    }       DO_CODE_BLOCK(n);    }    entry_point = assemble(1);       current_stack_depth = cleanup_frame__.stack_depth;    POP_AND_DONT_CLEANUP; -  current_label->prev = save_label; +     POP_STATEMENT_LABEL; -  +  current_label = save_label;    label_no = save_label_no;       return entry_point;   }      /* Used by eval_low() to build code for constant expressions. */   INT32 docode(node *n)   {    struct compilation *c = THIS_COMPILATION;    INT32 entry_point;