AV * argarray;
U16 olddepth;
U8 hasargs;
+ U8 lval; /* XXX merge lval and hasargs? */
};
#define PUSHSUB(cx) \
cx->blk_sub.cv = cv; \
cx->blk_sub.olddepth = CvDEPTH(cv); \
- cx->blk_sub.hasargs = hasargs;
+ cx->blk_sub.hasargs = hasargs; \
+ cx->blk_sub.lval = PL_op->op_private & \
+ (OPpLVAL_INTRO|OPpENTERSUB_INARGS);
#define PUSHFORMAT(cx) \
cx->blk_sub.cv = cv; \
#define G_ARRAY 1
#define G_VOID 128 /* skip this bit when adding flags below */
-/* extra flags for perl_call_* routines */
+/* extra flags for Perl_call_* routines */
#define G_DISCARD 2 /* Call FREETMPS. */
#define G_EVAL 4 /* Assume eval {} around subroutine call. */
#define G_NOARGS 8 /* Don't construct a @_ array. */
#define G_KEEPERR 16 /* Append errors to $@, don't overwrite it */
#define G_NODEBUG 32 /* Disable debugging at toplevel. */
+#define G_NOCATCH 64 /* Don't do CATCH_SET() */
+
+/* flag bits for PL_in_eval */
+#define EVAL_NULL 0 /* not in an eval */
+#define EVAL_INEVAL 1 /* some enclosing scope is an eval */
+#define EVAL_WARNONLY 2 /* used by yywarn() when calling yyerror() */
+#define EVAL_KEEPERR 4 /* set by Perl_call_sv if G_KEEPERR */
/* Support for switching (stack and block) contexts.
* This ensures magic doesn't invalidate local stack and cx pointers.