pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
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.
49
1999/
08
/
03
00
:
45
:09 hubbe Exp $");
+
RCSID("$Id: docode.c,v 1.
50
1999/
09
/
16
23
:
56
:09 hubbe Exp $");
#include "las.h" #include "program.h" #include "language.h" #include "pike_types.h" #include "stralloc.h" #include "interpret.h" #include "constants.h" #include "array.h" #include "pike_macros.h" #include "error.h"
pike.git/src/docode.c:228:
} if(flags & DO_LVALUE_IF_POSSIBLE) { flags|=DO_INDIRECT; flags &=~DO_LVALUE_IF_POSSIBLE; }else{ flags &=~DO_INDIRECT; }
+
/* Stack check */
+
{
+
long x_= ((char *)&x_) + STACK_DIRECTION * (32768) - stack_top ;
+
x_*=STACK_DIRECTION;
+
if(x_>0)
+
{
+
yyerror("Too dep recursion in compiler. (please report this)");
+
+
emit(F_NUMBER,0);
+
if(flags & DO_LVALUE)
+
{
+
emit(F_NUMBER,0);
+
return 2;
+
}
+
return 1;
+
}
+
}
+
switch(n->token) { case F_MAGIC_INDEX: case F_MAGIC_SET_INDEX: emit(F_LDA, n->u.node.a->u.sval.u.integer); emit(n->token, n->u.node.b->u.sval.u.integer); return 1; case F_EXTERNAL: emit(F_LDA, n->u.integer.a);