pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
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.
165
2003/
08
/
03
00
:
52
:
42
mast Exp $
+
|| $Id: docode.c,v 1.
166
2003/
09
/
05
15
:
19
:
20
mast Exp $
*/ #include "global.h"
-
RCSID("$Id: docode.c,v 1.
165
2003/
08
/
03
00
:
52
:
42
mast Exp $");
+
RCSID("$Id: docode.c,v 1.
166
2003/
09
/
05
15
:
19
:
20
mast 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:1248:
current_stack_depth+=2; } PUSH_CLEANUP_FRAME(do_pop, 5); PUSH_STATEMENT_LABEL; current_switch.jumptable=0; current_label->break_label=alloc_label(); current_label->continue_label=alloc_label();
-
tmp3=do_
branch
(
-1
);
+
/* Doubt it's necessary to use a label separate from
+
* current_label->break_label, but I'm playing safe. /mast */
+
tmp3
=
alloc_label();
+
do_
jump
(
F_FOREACH_START, DO_NOT_WARN((INT32
)
tmp3))
;
tmp1=ins_label(-1); DO_CODE_BLOCK(CDR(n)); ins_label(current_label->continue_label);
-
low_insert_label( DO_NOT_WARN((INT32)tmp3));
-
do_jump(F_
NEW_
FOREACH, DO_NOT_WARN((INT32)tmp1));
+
do_jump(F_
FOREACH
_
LOOP
, DO_NOT_WARN((INT32)tmp1));
ins_label(current_label->break_label);
-
+
low_insert_label( DO_NOT_WARN((INT32)tmp3));
current_switch.jumptable = prev_switch_jumptable; POP_STATEMENT_LABEL; POP_AND_DO_CLEANUP; BLOCK_END; return 0; } BLOCK_BEGIN; if(CAR(arr) && CAR(arr)->token==F_RANGE) { node **a1=my_get_arg(&_CAR(arr),0); node **a2=my_get_arg(&_CAR(arr),1); if(a1 && a2 && a2[0]->token==F_CONSTANT && a2[0]->u.sval.type==T_INT &&
-
+
/* FIXME: The following can never be true! */
a2[0]->u.sval.type==0x7fffffff && a1[0]->type == int_type_string) { do_docode(CAR(arr),DO_NOT_COPY_TOPLEVEL); do_docode(*a1,DO_NOT_COPY); goto foreach_arg_pushed; } } do_docode(CAR(n),DO_NOT_COPY); emit0(F_CONST0);