pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
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;