Change 34084 by [EMAIL PROTECTED] on 2008/06/24 13:30:23

        more incorrect variable reported in uninitialized value warnings
        (the ones that change #34077 missed). It also degrades some print
        warnings - ie variable names no longer displayed.

Affected files ...

... //depot/perl/sv.c#1543 edit
... //depot/perl/t/lib/warnings/9uninit#31 edit

Differences ...

==== //depot/perl/sv.c#1543 (text) ====
Index: perl/sv.c
--- perl/sv.c#1542~34077~       2008-06-22 12:05:31.000000000 -0700
+++ perl/sv.c   2008-06-24 06:30:23.000000000 -0700
@@ -12585,6 +12585,7 @@
     case OP_PRTF:
     case OP_PRINT:
     case OP_SAY:
+       match = 1; /* print etc can return undef on defined args */
        /* skip filehandle as it can't produce 'undef' warning  */
        o = cUNOPx(obase)->op_first;
        if ((obase->op_flags & OPf_STACKED) && o->op_type == OP_PUSHMARK)
@@ -12662,6 +12663,12 @@
     case OP_SORT:
     case OP_CALLER:
     case OP_DOFILE:
+    case OP_PROTOTYPE:
+    case OP_NCMP:
+    case OP_SMARTMATCH:
+    case OP_UNPACK:
+    case OP_SYSOPEN:
+    case OP_SYSSEEK:
        match = 1;
        goto do_op;
 

==== //depot/perl/t/lib/warnings/9uninit#31 (text) ====
Index: perl/t/lib/warnings/9uninit
--- perl/t/lib/warnings/9uninit#30~34077~       2008-06-22 12:05:31.000000000 
-0700
+++ perl/t/lib/warnings/9uninit 2008-06-24 06:30:23.000000000 -0700
@@ -282,13 +282,13 @@
 print STDERR $m1, $g1, $ga[1],$m2;
 print STDERR "", $ga[1],"";
 EXPECT
-Use of uninitialized value $ga[1000] in print at - line 5.
-Use of uninitialized value $ga[1000] in print at - line 6.
+Use of uninitialized value in print at - line 5.
+Use of uninitialized value in print at - line 6.
 Use of uninitialized value $m1 in print at - line 7.
 Use of uninitialized value $g1 in print at - line 7.
 Use of uninitialized value in print at - line 7.
 Use of uninitialized value $m2 in print at - line 7.
-Use of uninitialized value $ga[1] in print at - line 8.
+Use of uninitialized value in print at - line 8.
 ########
 use warnings 'uninitialized';
 my ($m1);
@@ -1166,15 +1166,15 @@
 Use of uninitialized value $g1 in printf at - line 6.
 Use of uninitialized value $g2 in printf at - line 6.
 0000
-Use of uninitialized value $ga[1000] in printf at - line 7.
-Use of uninitialized value $ga[1000] in printf at - line 8.
+Use of uninitialized value in printf at - line 7.
+Use of uninitialized value in printf at - line 8.
 FOO1:
 Use of uninitialized value $m1 in printf at - line 9.
 Use of uninitialized value $g1 in printf at - line 9.
 Use of uninitialized value in printf at - line 9.
 Use of uninitialized value $m2 in printf at - line 9.
 FOO2:
-Use of uninitialized value $ga[1] in printf at - line 10.
+Use of uninitialized value in printf at - line 10.
 FOO3:XY
 ########
 use warnings 'uninitialized';
@@ -1489,6 +1489,17 @@
 $v = 1 + sort @emptya;
 my $zero = 0; $v = 1 + caller($zero);
 $v = 1 + do $nofile;
+my $fn = sub {};
+$v = 1 + prototype $fn;
+my $nan = "NaN";
+$v = 1 + ($nan <=> 1);
+$v = 1 + ($fn ~~ 1);
+$v = 1 + (print STDIN $f); # print to STDIN returns undef
+$v = 1 + (printf STDIN "%s", $f);
+{ use feature 'say'; $v = 1 + (say STDIN "%s", $f); }
+$v = 1 + (unpack("",$f));
+$v = 1 + sysopen($f, $nofile, 0);
+{ my $x = -1; $v = 1 + sysseek(STDIN, $x, 0); }
 
 EXPECT
 Use of uninitialized value in addition (+) at - line 8.
@@ -1538,3 +1549,12 @@
 Use of uninitialized value in addition (+) at - line 75.
 Use of uninitialized value in addition (+) at - line 76.
 Use of uninitialized value in addition (+) at - line 77.
+Use of uninitialized value in addition (+) at - line 79.
+Use of uninitialized value in addition (+) at - line 81.
+Use of uninitialized value in addition (+) at - line 82.
+Use of uninitialized value in addition (+) at - line 83.
+Use of uninitialized value in addition (+) at - line 84.
+Use of uninitialized value in addition (+) at - line 85.
+Use of uninitialized value in addition (+) at - line 86.
+Use of uninitialized value in addition (+) at - line 87.
+Use of uninitialized value in addition (+) at - line 88.
End of Patch.

Reply via email to