diff options
author | Father Chrysostomos <sprout@cpan.org> | 2013-10-23 19:33:50 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2013-10-23 19:33:50 -0700 |
commit | 4c3ed7418bcf4eae5235fb7bcae842820725bea8 (patch) | |
tree | 3edb2ddaa777c11e2051622e23ae2f1af124553e | |
parent | 4695d03e5e2b9bb1edfe4c43b8cc20d634c8e372 (diff) | |
download | perl-4c3ed7418bcf4eae5235fb7bcae842820725bea8.tar.gz |
Add OPpLVALUE flag
This flag will be used by the next commit.
-rw-r--r-- | dump.c | 7 | ||||
-rw-r--r-- | ext/B/B/Concise.pm | 1 | ||||
-rw-r--r-- | op.h | 3 |
3 files changed, 10 insertions, 1 deletions
@@ -774,6 +774,11 @@ const struct flag_to_name op_sassign_names[] = { {OPpASSIGN_CV_TO_GV, ",CV2GV"} }; +const struct flag_to_name op_leave_names[] = { + {OPpREFCOUNTED, ",REFCOUNTED"}, + {OPpLVALUE, ",LVALUE"} +}; + #define OP_PRIVATE_ONCE(op, flag, name) \ const struct flag_to_name CAT2(op, _names)[] = { \ {(flag), (name)} \ @@ -799,7 +804,7 @@ struct op_private_by_op { const struct op_private_by_op op_private_names[] = { {OP_LEAVESUB, C_ARRAY_LENGTH(op_leavesub_names), op_leavesub_names }, - {OP_LEAVE, C_ARRAY_LENGTH(op_leavesub_names), op_leavesub_names }, + {OP_LEAVE, C_ARRAY_LENGTH(op_leave_names), op_leave_names }, {OP_LEAVESUBLV, C_ARRAY_LENGTH(op_leavesub_names), op_leavesub_names }, {OP_LEAVEWRITE, C_ARRAY_LENGTH(op_leavesub_names), op_leavesub_names }, {OP_DIE, C_ARRAY_LENGTH(op_die_names), op_die_names }, diff --git a/ext/B/B/Concise.pm b/ext/B/B/Concise.pm index dedae5abf9..6bb983de6e 100644 --- a/ext/B/B/Concise.pm +++ b/ext/B/B/Concise.pm @@ -598,6 +598,7 @@ $priv{$_}{128} = "LVINTRO" aelem helem aslice hslice padsv padav padhv enteriter entersub padrange pushmark); $priv{$_}{64} = "REFC" for qw(leave leavesub leavesublv leavewrite); +$priv{leave}{128} = "LV"; @{$priv{aassign}}{32,64} = qw(STATE COMMON); @{$priv{sassign}}{32,64,128} = qw(STATE BKWARD CV2GV); $priv{$_}{64} = "RTIME" for qw(match subst substcont qr); @@ -172,6 +172,9 @@ Deprecated. Use C<GIMME_V> instead. /* Private for OP_LEAVE, OP_LEAVESUB, OP_LEAVESUBLV and OP_LEAVEWRITE */ #define OPpREFCOUNTED 64 /* op_targ carries a refcount */ +/* Private for OP_LEAVE only */ +#define OPpLVALUE 128 /* Do not copy return value */ + /* Private for OP_AASSIGN */ #define OPpASSIGN_COMMON 64 /* Left & right have syms in common. */ |