[ID 20001026.006] C<use integer; $x += 1> gives uninitialized warning
authorYitzchak Scott-Thoennes <sthoenna@efn.org>
Thu, 26 Oct 2000 14:00:03 +0000 (07:00 -0700)
committerJarkko Hietaniemi <jhi@iki.fi>
Fri, 27 Oct 2000 11:59:42 +0000 (11:59 +0000)
Message-Id: <200010262100.e9QL03U06386@garcia.efn.org>

p4raw-id: //depot/perl@7454

pp.c
t/op/assignwarn.t

diff --git a/pp.c b/pp.c
index 6d77ca1..cc3f7eb 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -1566,7 +1566,7 @@ PP(pp_i_add)
 {
     djSP; dATARGET; tryAMAGICbin(add,opASSIGN);
     {
-      dPOPTOPiirl;
+      dPOPTOPiirl_ul;
       SETi( left + right );
       RETURN;
     }
@@ -1576,7 +1576,7 @@ PP(pp_i_subtract)
 {
     djSP; dATARGET; tryAMAGICbin(subtr,opASSIGN);
     {
-      dPOPTOPiirl;
+      dPOPTOPiirl_ul;
       SETi( left - right );
       RETURN;
     }
index 2d05b82..aff433c 100755 (executable)
@@ -21,7 +21,7 @@ sub ok { print $_[1] ? "ok " : "not ok ", $_[0], "\n"; }
 
 sub uninitialized { $warn =~ s/Use of uninitialized value[^\n]+\n//s; }
     
-print "1..23\n";
+print "1..32\n";
 
 { my $x; $x ++;     ok  1, ! uninitialized; }
 { my $x; $x --;     ok  2, ! uninitialized; }
@@ -55,7 +55,19 @@ print "1..23\n";
 { my $x; $x |= "x"; ok 21, ! uninitialized; }
 { my $x; $x ^= "x"; ok 22, ! uninitialized; }
 
-ok 23, $warn eq '';
+{ use integer; my $x; $x += 1; ok 23, ! uninitialized; }
+{ use integer; my $x; $x -= 1; ok 24, ! uninitialized; }
+
+{ use integer; my $x; $x *= 1; ok 25,  uninitialized; }
+{ use integer; my $x; $x /= 1; ok 26,  uninitialized; }
+{ use integer; my $x; $x %= 1; ok 27,  uninitialized; }
+
+{ use integer; my $x; $x ++;   ok 28, ! uninitialized; }
+{ use integer; my $x; $x --;   ok 29, ! uninitialized; }
+{ use integer; my $x; ++ $x;   ok 30, ! uninitialized; }
+{ use integer; my $x; -- $x;   ok 31, ! uninitialized; }
+
+ok 32, $warn eq '';
 
 # If we got any errors that we were not expecting, then print them
 print map "#$_\n", split /\n/, $warn if length $warn;