summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Delaney <rick@consumercontact.com>2007-07-07 19:06:11 -0400
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-07-11 12:02:11 +0000
commit500960a6f90e95877f90eef273215f16726946b1 (patch)
treebad3198260a93649ed46d90fa5e8402bf4657b63
parent58d3fd3b5888ac8ea3febee0b12943d3043ede14 (diff)
downloadperl-500960a6f90e95877f90eef273215f16726946b1.tar.gz
Re: [perl #43545] 'no warnings' effects $@.
Message-ID: <20070708030611.GJ436@bort.ca> p4raw-id: //depot/perl@31587
-rwxr-xr-xt/op/eval.t11
-rw-r--r--toke.c6
2 files changed, 13 insertions, 4 deletions
diff --git a/t/op/eval.t b/t/op/eval.t
index 57e39dd928..2eb9b1e9ed 100755
--- a/t/op/eval.t
+++ b/t/op/eval.t
@@ -5,7 +5,7 @@ BEGIN {
@INC = '../lib';
}
-print "1..94\n";
+print "1..95\n";
eval 'print "ok 1\n";';
@@ -455,7 +455,14 @@ print "ok $test - eval and last\n"; $test++;
local $@ = "foo";
eval undef;
print "not " unless $@ eq "";
- print "ok $test # eval unef \n"; $test++;
+ print "ok $test # eval undef \n"; $test++;
+}
+
+{
+ no warnings;
+ eval "/ /a;";
+ print "not " unless $@ =~ /^syntax error/;
+ print "ok $test # eval syntax error, no warnings \n"; $test++;
}
diff --git a/toke.c b/toke.c
index e84e18cadd..ead6806bf0 100644
--- a/toke.c
+++ b/toke.c
@@ -12540,8 +12540,10 @@ Perl_yyerror(pTHX_ const char *s)
(int)PL_multi_open,(int)PL_multi_close,(IV)PL_multi_start);
PL_multi_end = 0;
}
- if (PL_in_eval & EVAL_WARNONLY && ckWARN_d(WARN_SYNTAX))
- Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%"SVf, SVfARG(msg));
+ if (PL_in_eval & EVAL_WARNONLY) {
+ if (ckWARN_d(WARN_SYNTAX))
+ Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%"SVf, SVfARG(msg));
+ }
else
qerror(msg);
if (PL_error_count >= 10) {