pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: docode.c,v 1.203 2008/07/14 21:39:20 grubba Exp $ + || $Id: docode.c,v 1.204 2008/08/28 15:13:19 grubba Exp $   */      #include "global.h"   #include "las.h"   #include "program.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"
pike.git/src/docode.c:240:    emit1(F_LABEL, lbl);   }      static int ins_label(int lbl)   {    if(lbl==-1) lbl=alloc_label();    low_insert_label(lbl);    return lbl;   }    + void modify_stack_depth(int delta) + { +  current_stack_depth += delta; + #ifdef PIKE_DEBUG +  if (current_stack_depth < 0) { +  Pike_fatal("Popped out of virtual stack.\n"); +  } + #endif + } +    void do_pop(int x)   {    struct compilation *c = THIS_COMPILATION;   #ifdef PIKE_DEBUG    if (x < 0) Pike_fatal("Cannot do pop of %d args.\n", x);   #endif    switch(x)    {    case 0: return;    case 1: emit0(F_POP_VALUE); break;