diff options
author | Rick Delaney <rick@consumercontact.com> | 2007-07-07 19:06:11 -0400 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-07-11 12:02:11 +0000 |
commit | 500960a6f90e95877f90eef273215f16726946b1 (patch) | |
tree | bad3198260a93649ed46d90fa5e8402bf4657b63 | |
parent | 58d3fd3b5888ac8ea3febee0b12943d3043ede14 (diff) | |
download | perl-500960a6f90e95877f90eef273215f16726946b1.tar.gz |
Re: [perl #43545] 'no warnings' effects $@.
Message-ID: <20070708030611.GJ436@bort.ca>
p4raw-id: //depot/perl@31587
-rwxr-xr-x | t/op/eval.t | 11 | ||||
-rw-r--r-- | toke.c | 6 |
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++; } @@ -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) { |