diff options
author | Chip Salzenberg <chip@atlantic.net> | 1997-01-07 10:00:11 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-01-08 11:52:00 +1200 |
commit | 1fbd88dca62ac1229f868175c997834e730e5134 (patch) | |
tree | 9340aadc0c073321c2e9cac7da0d444c8b45f310 | |
parent | b8378b72956f290ff41ea1ce3b194c78c89181a1 (diff) | |
download | perl-1fbd88dca62ac1229f868175c997834e730e5134.tar.gz |
Finish OP= warnings: none on ^=
-rw-r--r-- | doop.c | 4 | ||||
-rw-r--r-- | pp.c | 4 | ||||
-rwxr-xr-x | t/op/assignwarn.t | 4 |
3 files changed, 6 insertions, 6 deletions
@@ -535,8 +535,8 @@ SV *right; char *lsave; char *rsave; - if (optype == OP_BIT_OR && sv == left && !SvOK(sv) && !SvGMAGICAL(sv)) - sv_setpvn(sv, "", 0); /* avoid undef warning on |= */ + if (sv != left || (optype != OP_BIT_AND && !SvOK(sv) && !SvGMAGICAL(sv))) + sv_setpvn(sv, "", 0); /* avoid undef warning on |= and ^= */ lsave = lc = SvPV(left, leftlen); rsave = rc = SvPV(right, rightlen); len = leftlen < rightlen ? leftlen : rightlen; @@ -977,11 +977,11 @@ PP(pp_bit_xor) dPOPTOPssrl; if (SvNIOKp(left) || SvNIOKp(right)) { if (op->op_private & HINT_INTEGER) { - IBW value = SvIV(left) ^ SvIV(right); + IBW value = (USE_LEFT(left) ? SvIV(left) : 0) ^ SvIV(right); SETi( value ); } else { - UBW value = SvUV(left) ^ SvUV(right); + UBW value = (USE_LEFT(left) ? SvUV(left) : 0) ^ SvUV(right); SETu( value ); } } diff --git a/t/op/assignwarn.t b/t/op/assignwarn.t index 32ee5bb2e9..57e89c45e0 100755 --- a/t/op/assignwarn.t +++ b/t/op/assignwarn.t @@ -43,7 +43,7 @@ print "1..23\n"; { my $x; $x &= 1; ok 13, uninitialized; } { my $x; $x |= 1; ok 14, ! uninitialized; } -{ my $x; $x ^= 1; ok 15, uninitialized; } +{ my $x; $x ^= 1; ok 15, ! uninitialized; } { my $x; $x &&= 1; ok 16, ! uninitialized; } { my $x; $x ||= 1; ok 17, ! uninitialized; } @@ -53,7 +53,7 @@ print "1..23\n"; { my $x; $x &= "x"; ok 20, uninitialized; } { my $x; $x |= "x"; ok 21, ! uninitialized; } -{ my $x; $x ^= "x"; ok 22, uninitialized; } +{ my $x; $x ^= "x"; ok 22, ! uninitialized; } ok 23, $warn eq ''; |