summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-06-01 14:11:37 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-06-01 14:38:52 -0700
commit1c70fb82f95ad11a9d4a425652926cdbd9db23f4 (patch)
treeb07ea83ed961d9b7bf2fd34d0c97e3f4765820f4 /pp_hot.c
parentfba8e77b3f4dc252953255811ead49d6391b30f3 (diff)
downloadperl-1c70fb82f95ad11a9d4a425652926cdbd9db23f4.tar.gz
Warn when list-assigning to TEMP
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/pp_hot.c b/pp_hot.c
index bb0f20517b..9dffb988ff 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1112,6 +1112,14 @@ PP(pp_aassign)
break;
}
if (relem <= lastrelem) {
+ if (
+ SvTEMP(sv) && !SvSMAGICAL(sv) && SvREFCNT(sv) == 1 &&
+ (!isGV_with_GP(sv) || SvFAKE(sv)) && ckWARN(WARN_MISC)
+ )
+ Perl_warner(aTHX_
+ packWARN(WARN_MISC),
+ "Useless assignment to a temporary"
+ );
sv_setsv(sv, *relem);
*(relem++) = sv;
}