pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:2800:
/* NB: This should only be reachable via eval_low(). * Typically treeopt will get rid of this node. */ SET_SVAL(s, PIKE_T_TYPE, 0, type, CAR(n)->type?CAR(n)->type:mixed_type_string); tmp1 = store_constant(&s, 0, NULL); emit1(F_CONSTANT, (INT32)tmp1); } return 1;
+
case F_FRAME_TYPE:
+
case F_FRAME_NAME:
+
{
+
if (n->token == F_FRAME_TYPE) {
+
tmp1 = store_constant(&CDR(n)->u.sval, 0, NULL);
+
} else {
+
tmp1 = store_prog_string(CDR(n)->u.sval.u.string);
+
}
+
emit2(n->token, CAR(n)->u.sval.u.integer, tmp1);
+
}
+
return 0;
+
+
case F_FRAME_END:
+
emit1(F_FRAME_END, CAR(n)->u.sval.u.integer);
+
return 0;
+
default: Pike_fatal("Infernal compiler error (unknown parse-tree-token %d).\n", n->token); UNREACHABLE(return 0); } } static void emit_save_locals(struct compiler_frame *f) { struct compilation *c = THIS_COMPILATION; unsigned INT16 offset;