pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   /**/   #include "global.h" - RCSID("$Id: docode.c,v 1.106 2002/11/18 16:40:54 grubba Exp $"); + RCSID("$Id: docode.c,v 1.107 2003/09/19 14:00:23 grubba Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "pike_memory.h"
pike.git/src/docode.c:431:    else   #endif    emit1(F_CALL_LFUN, id);    POP_AND_DONT_CLEANUP;    return 1;   }      static int do_docode2(node *n, INT16 flags)   {    ptrdiff_t tmp1,tmp2,tmp3; +  int ret;       if(!n) return 0;       if(flags & DO_LVALUE)    {    switch(n->token)    {    default:    yyerror("Illegal lvalue.");    emit1(F_NUMBER,0);
pike.git/src/docode.c:851:    }    do_jump_when_non_zero(CAR(n), DO_NOT_WARN((INT32)tmp2));    ins_label(current_label->break_label);       current_switch_jumptable = prev_switch_jumptable;    POP_STATEMENT_LABEL;    return 0;    }       case ' ': -  return do_docode(CAR(n),0)+do_docode(CDR(n),DO_LVALUE); +  ret = do_docode(CAR(n),0); +  return ret + do_docode(CDR(n),DO_LVALUE);       case F_FOREACH:    {    node *arr;    INT32 *prev_switch_jumptable = current_switch_jumptable;       arr=CAR(n);       if(arr->token==F_RANGE)    {
pike.git/src/docode.c:1474:    POP_STATEMENT_LABEL;       ins_label(DO_NOT_WARN((INT32)tmp1));    current_stack_depth++;       POP_AND_DONT_CLEANUP;    return 1;    }       case F_LVALUE_LIST: -  return do_docode(CAR(n),DO_LVALUE)+do_docode(CDR(n),DO_LVALUE); +  ret = do_docode(CAR(n),DO_LVALUE); +  return ret + do_docode(CDR(n),DO_LVALUE);       case F_ARRAY_LVALUE:    tmp1=do_docode(CAR(n),DO_LVALUE);   #ifdef PIKE_DEBUG    if(tmp1 & 1)    fatal("Very internal compiler error.\n");   #endif    emit1(F_ARRAY_LVALUE, DO_NOT_WARN((INT32)(tmp1>>1)));    return 2;