pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:37:    struct cleanup_frame *prev;    cleanup_func cleanup;    void *cleanup_arg;    int stack_depth;   };      struct statement_label_name   {    struct statement_label_name *next;    struct pike_string *str; -  unsigned int line_number; +  INT_TYPE line_number;   };      struct statement_label   {    struct statement_label *prev;    struct statement_label_name *name;    /* -2 in break_label is used to flag "open" statement_label entries.    * If an open entry is on top of the stack, it's used instead of a    * new one. That's used to associate statement labels to the    * following statement. */
pike.git/src/docode.c:298:    emit0(F_ESCAPE_CATCH);   }      #define DO_CODE_BLOCK(X) do_pop(do_docode((X),DO_NOT_COPY | DO_POP ))      int do_docode(node *n, int flags)   {    int i;    int stack_depth_save = current_stack_depth;    struct compilation *c = THIS_COMPILATION; -  int save_current_line = c->lex.current_line; +  INT_TYPE save_current_line = c->lex.current_line;    if(!n) return 0;    c->lex.current_line=n->line_number;   #ifdef PIKE_DEBUG    if (current_stack_depth == -4711) Pike_fatal("do_docode() used outside docode().\n");   #endif    i=do_docode2(n, flags);    current_stack_depth = stack_depth_save + i;       c->lex.current_line=save_current_line;    return i;
pike.git/src/docode.c:2267:    struct statement_label_name *lbl_name;    for (label = current_label; label; label = label->prev)    for (lbl_name = label->name; lbl_name; lbl_name = lbl_name->next)    if (lbl_name->str == name)    goto label_found_1;    my_yyerror("No surrounding statement labeled %S.", name);    return 0;       label_found_1:    if (n->token == F_CONTINUE && label->continue_label < 0) { -  my_yyerror("Cannot continue the non-loop statement on line %d.", -  lbl_name->line_number); +  my_yyerror("Cannot continue the non-loop statement on line %ld.", +  (long)lbl_name->line_number);    return 0;    }    }       else {    if (n->token == F_BREAK) {    for (label = current_label; label; label = label->prev)    if (label->break_label >= 0 && !label->emit_break_label)    goto label_found_2;    yyerror("Break outside loop or switch.");
pike.git/src/docode.c:2324:    struct statement_label_name name;    BLOCK_BEGIN;    PUSH_STATEMENT_LABEL;    name.str = CAR(n)->u.sval.u.string;    name.line_number = n->line_number;       for (label = current_label; label; label = label->prev) {    struct statement_label_name *lbl_name;    for (lbl_name = label->name; lbl_name; lbl_name = lbl_name->next)    if (lbl_name->str == name.str) { -  INT32 save_line = c->lex.current_line; +  INT_TYPE save_line = c->lex.current_line;    c->lex.current_line = name.line_number;    my_yyerror("Duplicate nested labels, previous one on line %d.",    lbl_name->line_number);    c->lex.current_line = save_line;    goto label_check_done;    }    }    label_check_done:       name.next = current_label->name;