summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorLukas Mai <l.mai@web.de>2015-02-12 13:29:29 +0100
committerTony Cook <tony@develop-help.com>2015-06-09 12:02:19 +1000
commit46b27d2f2c37f40dde845f9b4743975c69f2cc27 (patch)
tree413e79520c7d7a9bd9c455e27e7834d79a33645d /util.c
parentbc75599f3966061f79dd05f8d4bfbd827ca8a14e (diff)
downloadperl-46b27d2f2c37f40dde845f9b4743975c69f2cc27.tar.gz
don't fatalize warnings during unwinding (#123398)
Diffstat (limited to 'util.c')
-rw-r--r--util.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/util.c b/util.c
index 8cf62f594d..bc2af99bc3 100644
--- a/util.c
+++ b/util.c
@@ -1938,7 +1938,10 @@ Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args)
{
dVAR;
PERL_ARGS_ASSERT_VWARNER;
- if (PL_warnhook == PERL_WARNHOOK_FATAL || ckDEAD(err)) {
+ if (
+ (PL_warnhook == PERL_WARNHOOK_FATAL || ckDEAD(err)) &&
+ !(PL_in_eval & EVAL_KEEPERR)
+ ) {
SV * const msv = vmess(pat, args);
if (PL_parser && PL_parser->error_count) {