fix misoptimization of C<my($x,$y); $x = $y = 1 + $z;> (from
[p5sagit/p5-mst-13.2.git] / op.c
diff --git a/op.c b/op.c
index e1d0dcd..bc30f01 100644 (file)
--- a/op.c
+++ b/op.c
@@ -5719,7 +5719,9 @@ Perl_ck_sassign(pTHX_ OP *o)
     OP *kid = cLISTOPo->op_first;
     /* has a disposable target? */
     if ((PL_opargs[kid->op_type] & OA_TARGLEX)
-       && !(kid->op_flags & OPf_STACKED))
+       && !(kid->op_flags & OPf_STACKED)
+       /* Cannot steal the second time! */
+       && !(kid->op_private & OPpTARGET_MY))
     {
        OP *kkid = kid->op_sibling;