pike.git / src / language.yacc

version» Context lines:

pike.git/src/language.yacc:907:    int l = $12->line_number;    struct pike_string *f = $12->current_file;    if (check_args) {    /* Prepend the arg checking code. */    $12 = mknode(F_COMMA_EXPR, mknode(F_POP_VALUE, check_args, NULL), $12);    }    c->lex.current_line = l;    c->lex.current_file = f;    }    +  $12 = pop_local_variables(0, $12); +     f=dooptcode($5->u.sval.u.string, $12, $<n>11->u.sval.u.type, $1);       i = ID_FROM_INT(Pike_compiler->new_program, f);    i->opt_flags = Pike_compiler->compiler_frame->opt_flags;       if (Pike_compiler->compiler_pass == COMPILER_PASS_LAST &&    Pike_compiler->compiler_frame->current_return_type->type == PIKE_T_AUTO)    {    /* Change "auto" return type to actual return type. */    push_finished_type(Pike_compiler->compiler_frame->current_return_type->car);
pike.git/src/language.yacc:2200:   #ifdef LAMBDA_DEBUG    fprintf(stderr, "%d: LAMBDA: %s 0x%08lx 0x%08lx\n%d: type: ",    Pike_compiler->compiler_pass, name->str,    (long)Pike_compiler->new_program->id,    Pike_compiler->local_class_counter-1,    Pike_compiler->compiler_pass);    simple_describe_type(type);    fprintf(stderr, "\n");   #endif /* LAMBDA_DEBUG */    +  $7 = pop_local_variables(0, $7); +     f=dooptcode(name,    $7,    type,    ID_PROTECTED | ID_PRIVATE | ID_INLINE | ID_USED);      #ifdef PIKE_DEBUG    if (f != Pike_compiler->compiler_frame->current_function_number) {    Pike_fatal("Lost track of lambda %s.\n", name->str);    }   #endif /* PIKE_DEBUG */
pike.git/src/language.yacc:2336:    int localid;    struct identifier *i=ID_FROM_INT(Pike_compiler->new_program, $<number>4);    struct compilation *c = THIS_COMPILATION;    struct pike_string *save_file = c->lex.current_file;    int save_line = c->lex.current_line;    c->lex.current_file = $1->current_file;    c->lex.current_line = $1->line_number;       $5=mknode(F_COMMA_EXPR,$5,mknode(F_RETURN,mkintnode(0),0));    +  $5 = pop_local_variables(0, $5); +     debug_malloc_touch($5);    dooptcode(i->name,    $5,    i->type,    ID_PROTECTED | ID_PRIVATE | ID_INLINE);       i->opt_flags = Pike_compiler->compiler_frame->opt_flags;       c->lex.current_line = save_line;    c->lex.current_file = save_file;
pike.git/src/language.yacc:2670:    mknode(F_ASSIGN, mkidentifiernode(e), local_node));    }    }       /* Fourth: Add a return 0; at the end. */       create_code = mknode(F_COMMA_EXPR,    mknode(F_POP_VALUE, create_code, NULL),    mknode(F_RETURN, mkintnode(0), NULL));    +  create_code = pop_local_variables(0, create_code); +     /* Fifth: Define the function. */       f=dooptcode(create_string, create_code, type, ID_PROTECTED);      #ifdef PIKE_DEBUG    if(Pike_interpreter.recoveries &&    Pike_sp-Pike_interpreter.evaluator_stack < Pike_interpreter.recoveries->stack_pointer)    Pike_fatal("Stack error (underflow)\n");       if(Pike_compiler->compiler_pass == COMPILER_PASS_FIRST &&
pike.git/src/language.yacc:2927:    mknode(F_ASSIGN, mkidentifiernode(e), local_node));    }    }       /* Fourth: Add a return 0; at the end. */       create_code = mknode(F_COMMA_EXPR,    mknode(F_POP_VALUE, create_code, NULL),    mknode(F_RETURN, mkintnode(0), NULL));    +  create_code = pop_local_variables(0, create_code); +     /* Fifth: Define the function. */       f=dooptcode(create_string, create_code, type, ID_PROTECTED);      #ifdef PIKE_DEBUG    if(Pike_interpreter.recoveries &&    Pike_sp-Pike_interpreter.evaluator_stack < Pike_interpreter.recoveries->stack_pointer)    Pike_fatal("Stack error (underflow)\n");       if(Pike_compiler->compiler_pass == COMPILER_PASS_FIRST &&