Change 11822 by ams@ams-lustre on 2001/09/02 02:54:50

        Subject: RE: [PATCH] Add a nextstate into empty blocks
        From: Ilmari Karonen <[EMAIL PROTECTED]>
        Date: Sun, 19 Aug 2001 19:27:33 +0300 (EET DST)
        Message-Id: <Pine.SOL.3.96.1010819163840.8384B-100000@simpukka>
        (op/sub_lval.t updated to take new error message into account.)

Affected files ...

... //depot/perl/op.c#436 edit
... //depot/perl/t/op/sub_lval.t#3 edit

Differences ...

==== //depot/perl/op.c#436 (text) ====
Index: perl/op.c
--- perl/op.c.~1~       Sat Sep  1 21:00:05 2001
+++ perl/op.c   Sat Sep  1 21:00:05 2001
@@ -2155,7 +2155,10 @@
 Perl_block_end(pTHX_ I32 floor, OP *seq)
 {
     int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
-    OP* retval = scalarseq(seq);
+    line_t copline = PL_copline;
+    /* there should be a nextstate in every block */
+    OP* retval = seq ? scalarseq(seq) : newSTATEOP(0, Nullch, seq);
+    PL_copline = copline;  /* XXX newSTATEOP may reset PL_copline */
     LEAVE_SCOPE(floor);
     PL_pad_reset_pending = FALSE;
     PL_compiling.op_private = PL_hints;
@@ -4704,7 +4707,8 @@
                        && (!const_sv || sv_cmp(cv_const_sv(cv), const_sv))))
                {
                    line_t oldline = CopLINE(PL_curcop);
-                   CopLINE_set(PL_curcop, PL_copline);
+                   if (PL_copline != NOLINE)
+                       CopLINE_set(PL_curcop, PL_copline);
                    Perl_warner(aTHX_ WARN_REDEFINE,
                        CvCONST(cv) ? "Constant subroutine %s redefined"
                                    : "Subroutine %s redefined", name);
@@ -5177,8 +5181,8 @@
     if ((cv = GvFORM(gv))) {
        if (ckWARN(WARN_REDEFINE)) {
            line_t oldline = CopLINE(PL_curcop);
-
-           CopLINE_set(PL_curcop, PL_copline);
+           if (PL_copline != NOLINE)
+               CopLINE_set(PL_curcop, PL_copline);
            Perl_warner(aTHX_ WARN_REDEFINE, "Format %s redefined",name);
            CopLINE_set(PL_curcop, oldline);
        }

==== //depot/perl/t/op/sub_lval.t#3 (xtext) ====
Index: perl/t/op/sub_lval.t
--- perl/t/op/sub_lval.t.~1~    Sat Sep  1 21:00:05 2001
+++ perl/t/op/sub_lval.t        Sat Sep  1 21:00:05 2001
@@ -251,7 +251,7 @@
 EOE
 
 print "# '$_'.\nnot "
-  unless /Can\'t return a readonly value from lvalue subroutine/;
+  unless /Empty array returned from lvalue subroutine in scalar context/;
 print "ok 31\n";
 
 sub lv10 : lvalue {}
End of Patch.

Reply via email to