change#4197 somehow missed initializing PL_errors, meaning
Gurusamy Sarathy [Thu, 27 Apr 2000 19:46:57 +0000 (19:46 +0000)]
sytax error queueing wasn't working outside eval"" at all;
also fixed eval"" to localize PL_error_count, so that compile-time
eval's don't clobber the error state of the outer context

p4raw-link: @4197 on //depot/perl: 5a844595b9262407e093364ec4d29a22962723f0

p4raw-id: //depot/perl@5974

lib/Math/Complex.pm
perl.c
pp_ctl.c
t/pragma/warn/op
t/pragma/warn/toke

index b13ab77..f8040d5 100644 (file)
@@ -1405,7 +1405,6 @@ sub stringify_polar {
 1;
 __END__
 
-=pod
 =head1 NAME
 
 Math::Complex - complex numbers and associated mathematical functions
diff --git a/perl.c b/perl.c
index e7a9bc2..f81648c 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -276,6 +276,7 @@ perl_construct(pTHXx)
 
     PL_fdpid = newAV();                        /* for remembering popen pids by fd */
     PL_modglobal = newHV();            /* pointers to per-interpreter module globals */
+    PL_errors = newSVpvn("",0);
 
     ENTER;
 }
index 4fcfb57..64c706e 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2762,6 +2762,7 @@ S_doeval(pTHX_ int gimme, OP** startop)
     SAVESPTR(PL_beginav);
     PL_beginav = newAV();
     SAVEFREESV(PL_beginav);
+    SAVEI32(PL_error_count);
 
     /* try to compile it */
 
index 32f66dc..2c9e0fd 100644 (file)
@@ -603,7 +603,6 @@ my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ;
 EXPECT
 Applying pattern match (m//) to @array will act on scalar(@array) at - line 5.
 Applying substitution (s///) to @array will act on scalar(@array) at - line 6.
-Can't modify private array in substitution (s///) at - line 6, near "s/a/b/ ;"
 Applying transliteration (tr///) to @array will act on scalar(@array) at - line 7.
 Applying pattern match (m//) to @array will act on scalar(@array) at - line 8.
 Applying substitution (s///) to @array will act on scalar(@array) at - line 9.
@@ -614,6 +613,7 @@ Applying transliteration (tr///) to %hash will act on scalar(%hash) at - line 13
 Applying pattern match (m//) to %hash will act on scalar(%hash) at - line 14.
 Applying substitution (s///) to %hash will act on scalar(%hash) at - line 15.
 Applying transliteration (tr///) to %hash will act on scalar(%hash) at - line 16.
+Can't modify private array in substitution (s///) at - line 6, near "s/a/b/ ;"
 BEGIN not safe after errors--compilation aborted at - line 18.
 ########
 # op.c
index cfdea78..5aeef82 100644 (file)
@@ -220,12 +220,12 @@ Reversed *= operator at - line 9.
 Reversed %= operator at - line 10.
 Reversed &= operator at - line 11.
 Reversed .= operator at - line 12.
-syntax error at - line 12, near "=."
 Reversed ^= operator at - line 13.
-syntax error at - line 13, near "=^"
 Reversed |= operator at - line 14.
-syntax error at - line 14, near "=|"
 Reversed <= operator at - line 15.
+syntax error at - line 12, near "=."
+syntax error at - line 13, near "=^"
+syntax error at - line 14, near "=|"
 Unterminated <> operator at - line 15.
 ########
 # toke.c