This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #87708] use integer; $tied < $tied
authorFather Chrysostomos <sprout@cpan.org>
Wed, 6 Apr 2011 13:28:01 +0000 (06:28 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 6 Apr 2011 15:40:08 +0000 (08:40 -0700)
This is just part of #87708.

This fixes < under â€˜use integer’ when the same tied scalar is used for
both operands and returns two different values. Before this commit,
get-magic would be called only once and the same value used. In 5.12.x
the operands were swapped.

pp.c
t/lib/warnings/9uninit
t/op/tie_fetch_count.t

diff --git a/pp.c b/pp.c
index df02e9c..51dc496 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -2983,7 +2983,7 @@ PP(pp_i_lt)
     dVAR; dSP;
     tryAMAGICbin_MG(lt_amg, AMGf_set);
     {
-      dPOPTOPiirl_nomg;
+      dPOPTOPiirl_halfmg;
       SETs(boolSV(left < right));
       RETURN;
     }
index 5629917..7dfeb7b 100644 (file)
@@ -567,8 +567,8 @@ Use of uninitialized value $m2 in integer division (/) at - line 10.
 Use of uninitialized value $g1 in integer modulus (%) at - line 11.
 Use of uninitialized value $m1 in integer modulus (%) at - line 11.
 Use of uninitialized value $m2 in integer modulus (%) at - line 12.
-Use of uninitialized value $g1 in integer lt (<) at - line 13.
 Use of uninitialized value $m1 in integer lt (<) at - line 13.
+Use of uninitialized value $g1 in integer lt (<) at - line 13.
 Use of uninitialized value $m1 in integer gt (>) at - line 14.
 Use of uninitialized value $g1 in integer gt (>) at - line 14.
 Use of uninitialized value $m1 in integer le (<=) at - line 15.
index cecfd7f..d0a3b62 100644 (file)
@@ -245,8 +245,8 @@ bin_test '.' ,  1, 2, 12;
         is($var - $var, 9, 'retval of $var - $var under use integer');
         { local $TODO; check_count '- under use integer',  2; }
     }
-    bin_int_test '<' ,  1, 2, 1;
 }
+bin_int_test '<' ,  1, 2, 1;
 bin_int_test '>' , 44, 2, 1;
 bin_int_test '<=', 44, 2, "";
 bin_int_test '>=',  1, 2, "";