Change 33981 by [EMAIL PROTECTED] on 2008/06/01 19:32:34
Subject: [perl #36875] [PATCH] scalar reverse undef does not warn (was:
Certain string handling functions don't warn on undef)
From: "Bram via RT" <[EMAIL PROTECTED]>
Date: Sat, 24 May 2008 12:34:22 -0700
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/pp.c#629 edit
... //depot/perl/t/lib/warnings/9uninit#29 edit
Differences ...
==== //depot/perl/pp.c#629 (text) ====
Index: perl/pp.c
--- perl/pp.c#628~33678~ 2008-04-14 08:16:08.000000000 -0700
+++ perl/pp.c 2008-06-01 12:32:34.000000000 -0700
@@ -4604,13 +4604,18 @@
SvUTF8_off(TARG); /* decontaminate */
if (SP - MARK > 1)
do_join(TARG, &PL_sv_no, MARK, SP);
- else
+ else {
sv_setsv(TARG, (SP > MARK)
? *SP
: (padoff_du = find_rundefsvoffset(),
(padoff_du == NOT_IN_PAD
|| PAD_COMPNAME_FLAGS_isOUR(padoff_du))
? DEFSV : PAD_SVl(padoff_du)));
+
+ if (! SvOK(TARG) && ckWARN(WARN_UNINITIALIZED))
+ report_uninit(TARG);
+ }
+
up = SvPV_force(TARG, len);
if (len > 1) {
if (DO_UTF8(TARG)) { /* first reverse each character */
==== //depot/perl/t/lib/warnings/9uninit#29 (text) ====
Index: perl/t/lib/warnings/9uninit
--- perl/t/lib/warnings/9uninit#28~33770~ 2008-04-30 04:51:12.000000000
-0700
+++ perl/t/lib/warnings/9uninit 2008-06-01 12:32:34.000000000 -0700
@@ -1400,3 +1400,14 @@
EXPECT
Use of uninitialized value $undef in addition (+) at - line 4.
Use of uninitialized value $undef in addition (+) at - line 7.
+########
+use warnings 'uninitialized';
+my ($r1, $r2);
+$_ = undef;
+$v = reverse;
+$v = reverse $r1;
+$v = reverse "abc", $r2, "def";
+EXPECT
+Use of uninitialized value in reverse at - line 4.
+Use of uninitialized value $r1 in reverse at - line 5.
+Use of uninitialized value $r2 in reverse at - line 6.
End of Patch.