summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2014-10-02 22:38:27 -0700
committerFather Chrysostomos <sprout@cpan.org>2014-10-11 00:10:15 -0700
commitd39c26a657753cddffc8cb3dbd2aaa929b2c78fe (patch)
treee3061d7ad6cb247565e7ce16a74db2eddc5a07e7 /cop.h
parent5a36b2c090849e18b86c1759887c5bcebd598113 (diff)
downloadperl-d39c26a657753cddffc8cb3dbd2aaa929b2c78fe.tar.gz
foreach \$var
Some passing tests are still marked to-do. We need more tests still.
Diffstat (limited to 'cop.h')
-rw-r--r--cop.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/cop.h b/cop.h
index 37980f04bd..9c25555d95 100644
--- a/cop.h
+++ b/cop.h
@@ -761,7 +761,9 @@ struct block_loop {
((c)->blk_loop.itervar_u.oldcomppad \
? (CxPADLOOP(c) \
? CxITERVAR_PADSV(c) \
- : &GvSV((c)->blk_loop.itervar_u.gv)) \
+ : isGV((c)->blk_loop.itervar_u.gv) \
+ ? &GvSV((c)->blk_loop.itervar_u.gv) \
+ : (SV **)&(c)->blk_loop.itervar_u.gv) \
: (SV**)NULL)
#define CxLABEL(c) (0 + CopLABEL((c)->blk_oldcop))
@@ -980,6 +982,7 @@ struct context {
/* private flags for CXt_LOOP */
#define CXp_FOR_DEF 0x10 /* foreach using $_ */
+#define CXp_FOR_LVREF 0x20 /* foreach using \$var */
#define CxPADLOOP(c) ((c)->blk_loop.my_op->op_targ)
/* private flags for CXt_SUBST */