diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-09-29 22:23:22 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-10-11 00:10:13 -0700 |
commit | 4cb217963bb5dd7a847ee100592f6abd696c1f41 (patch) | |
tree | 46c1bae014f57ce30e43afe82f90ddf288db4248 | |
parent | 2882b3ff194c533cea5909d6f11ee4a911ef0f9e (diff) | |
download | perl-4cb217963bb5dd7a847ee100592f6abd696c1f41.tar.gz |
lvavref needs OPpLVAL_INTRO and OPpPAD_STATE
-rw-r--r-- | lib/B/Op_private.pm | 4 | ||||
-rw-r--r-- | opcode.h | 4 | ||||
-rw-r--r-- | regen/op_private | 5 |
3 files changed, 7 insertions, 6 deletions
diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm index 78a1ab2a1f..c804b23a54 100644 --- a/lib/B/Op_private.pm +++ b/lib/B/Op_private.pm @@ -128,7 +128,7 @@ $bits{$_}{5} = 'OPpHUSH_VMSISH' for qw(dbstate nextstate); $bits{$_}{2} = 'OPpITER_REVERSED' for qw(enteriter iter); $bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop); $bits{$_}{4} = 'OPpLVAL_DEFER' for qw(aelem helem); -$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvref lvrefslice padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv); +$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv); $bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign); $bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem aslice av2arylen helem hslice keys kvaslice kvhslice padav padhv pos rkeys rv2av rv2gv rv2hv substr vec); $bits{$_}{6} = 'OPpMAYBE_TRUEBOOL' for qw(padhv rv2hv); @@ -138,7 +138,7 @@ $bits{$_}{4} = 'OPpOPEN_IN_RAW' for qw(backtick open); $bits{$_}{7} = 'OPpOPEN_OUT_CRLF' for qw(backtick open); $bits{$_}{6} = 'OPpOPEN_OUT_RAW' for qw(backtick open); $bits{$_}{4} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv split); -$bits{$_}{4} = 'OPpPAD_STATE' for qw(padav padhv padsv pushmark); +$bits{$_}{4} = 'OPpPAD_STATE' for qw(lvavref padav padhv padsv pushmark); $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo); $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite); $bits{$_}{6} = 'OPpRUNTIME' for qw(match pushre qr subst substcont); @@ -3107,7 +3107,7 @@ EXTCONST U16 PL_op_private_bitdefs[] = { /* refassign */ 0x277c, 0x037a, 0x13e8, 0x0067, /* lvref */ 0x277c, 0x037a, 0x13e8, 0x0003, /* lvrefslice */ 0x277d, - /* lvavref */ 0x0003, + /* lvavref */ 0x277c, 0x3970, 0x0003, }; @@ -3498,7 +3498,7 @@ EXTCONST U8 PL_op_private_valid[] = { /* REFASSIGN */ (OPpARG2_MASK|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpLVAL_INTRO), /* LVREF */ (OPpARG1_MASK|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpLVAL_INTRO), /* LVREFSLICE */ (OPpLVAL_INTRO), - /* LVAVREF */ (OPpARG1_MASK), + /* LVAVREF */ (OPpARG1_MASK|OPpPAD_STATE|OPpLVAL_INTRO), }; diff --git a/regen/op_private b/regen/op_private index 918a7fe100..e18eda33e9 100644 --- a/regen/op_private +++ b/regen/op_private @@ -301,7 +301,7 @@ for (qw(nextstate dbstate)) { addbits($_, 7 => qw(OPpLVAL_INTRO LVINTRO)) for qw(gvsv rv2sv rv2hv rv2gv rv2av aelem helem aslice hslice delete padsv padav padhv enteriter entersub padrange - pushmark cond_expr refassign lvref lvrefslice), + pushmark cond_expr refassign lvref lvrefslice lvavref), 'list', # this gets set in my_attrs() for some reason ; @@ -472,7 +472,8 @@ addbits($_, 7 => qw(OPpPV_IS_UTF8 UTF)) for qw(last redo next goto dump); -addbits($_, 4 => qw(OPpPAD_STATE STATE)) for qw(padav padhv padsv pushmark); +addbits($_, 4 => qw(OPpPAD_STATE STATE)) for qw(padav padhv padsv lvavref + pushmark); |