S_lvref() OP_[AH]SLICE => OP_LVREFSLICE flag issue blead
authorDavid Mitchell <davem@iabyn.com>
Mon, 27 Jun 2016 13:56:09 +0000 (14:56 +0100)
committerDavid Mitchell <davem@iabyn.com>
Mon, 27 Jun 2016 13:56:09 +0000 (14:56 +0100)
commit36efb5a67d73cc824ada76aaa2e3b03bda5cdc60
tree0d4e2551dde807f54a5eeb8fd5056464240b49b5
parentf4484b87a82daea7be100df3744515a1bdd437a1
S_lvref() OP_[AH]SLICE => OP_LVREFSLICE flag issue

RT #128252 Assert fail in op.c

In S_lvref(), when it's converting an OP_ASLICE or OP_HSLICE into a
OP_LVREFSLICE op, it clears all private flags except those supported by
both ops.  Except that it got it wrong. OPpLVREF_ELEM isn't a valid flag
for OP_[AH]SLICE (that bit corresponds to OPpSLICEWARNING for [ah]slice)
and that bit isn't valid for OP_LVREFSLICE. So don't preserve that bit.
op.c