From 2f9365dc3b09bdf83c00a6d176d882057608308e Mon Sep 17 00:00:00 2001 From: Dave Mitchell Date: Thu, 7 Jan 2016 11:36:10 +1100 Subject: [PATCH] [perl #126633] check children of OA_DANGEROUS ops for common scalars Tony Cook: added tests --- op.c | 3 ++- t/op/aassign.t | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/op.c b/op.c index 1b78a4c..ee31adc 100644 --- a/op.c +++ b/op.c @@ -12343,7 +12343,8 @@ S_aassign_scan(pTHX_ OP* o, bool rhs, bool top, int *scalars_p) default: if (PL_opargs[o->op_type] & OA_DANGEROUS) { (*scalars_p) += 2; - return AAS_DANGEROUS; + flags = AAS_DANGEROUS; + break; } if ( (PL_opargs[o->op_type] & OA_TARGLEX) diff --git a/t/op/aassign.t b/t/op/aassign.t index 03cc84c..e1c687c 100644 --- a/t/op/aassign.t +++ b/t/op/aassign.t @@ -382,6 +382,14 @@ SKIP: { my $orig; ($proxy[0], $orig) = (1, $set); is($orig, 0, 'previous value of $set'); + + # from cpan #110278 + use List::Util qw(min); + my $x = 1; + my $y = 2; + ( $x, $y ) = ( min($y), min($x) ); + is($x, 2, "check swap for \$x"); + is($y, 1, "check swap for \$y"); } done_testing(); -- 1.8.3.1