Re: [perl #17376] Bug Report - our(%)
Yitzchak Scott-Thoennes [Tue, 1 Oct 2002 09:54:30 +0000 (02:54 -0700)]
Message-ID: <GNdm9gzkgWOS092yn@efn.org>

p4raw-id: //depot/perl@17963

op.c
pp_hot.c
t/comp/our.t

diff --git a/op.c b/op.c
index 4804bf1..c7d085c 100644 (file)
--- a/op.c
+++ b/op.c
@@ -1680,7 +1680,7 @@ Perl_my_attrs(pTHX_ OP *o, OP *attrs)
     int maybe_scalar = 0;
 
 /* [perl #17376]: this appears to be premature, and results in code such as
-   C< my(%x); > executing in list mode rather than void mode */
+   C< our(%x); > executing in list mode rather than void mode */
 #if 0
     if (o->op_flags & OPf_PARENS)
        list(o);
index cc301ba..8d56ada 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -780,7 +780,7 @@ PP(pp_rv2av)
        }
        SP += maxarg;
     }
-    else {
+    else if (GIMME_V == G_SCALAR) {
        dTARGET;
        I32 maxarg = AvFILL(av) + 1;
        SETi(maxarg);
index c381c41..8029f61 100644 (file)
@@ -33,17 +33,18 @@ tie %x, 'TieAll';
 
 {our $x;}
 is(TieAll->calls, '', 'our $x has no runtime effect');
+
 {our ($x);}
 is(TieAll->calls, '', 'our ($x) has no runtime effect');
+
 {our %x;}
 is(TieAll->calls, '', 'our %x has no runtime effect');
 
-{
-    local $TODO = 'perl #17376';
-    {our (%x);}
-    is(TieAll->calls, '', 'our (%x) has no runtime effect');
-    {our @x;}
-    is(TieAll->calls, '', 'our @x has no runtime effect');
-    {our (@x);}
-    is(TieAll->calls, '', 'our (@x) has no runtime effect');
-}
+{our (%x);}
+is(TieAll->calls, '', 'our (%x) has no runtime effect');
+
+{our @x;}
+is(TieAll->calls, '', 'our @x has no runtime effect');
+
+{our (@x);}
+is(TieAll->calls, '', 'our (@x) has no runtime effect');