This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
New lightweight Carp has a require. If Carp is used in a __DIE__ handler
authorNick Ing-Simmons <nik@tiuk.ti.com>
Sat, 14 Aug 1999 09:20:58 +0000 (09:20 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Sat, 14 Aug 1999 09:20:58 +0000 (09:20 +0000)
commita7c6d24429ab2b6db54575a3bdc62c7ed9f881cf
tree7d35f0d7ea024de4150a892601d0a84bcd7d1c59
parent7e291ef107a151a0b630a8ce85d6a562438da741
New lightweight Carp has a require. If Carp is used in a __DIE__ handler
this causes a POPSTACK panic. The problem seems to be that although
die_where() has unwound the tail of perl_vdie() top_env setjmp has been
set to resume execution there. Avoiding setting CATCH_SET(TRUE) in
call_sv() avoids this. So invent a new G_NOCATCH flag to disable
messing with CATCH_SET() in call_sv, use it in perl_vdie().
Add test to op/eval.t which will fail (panic) if bug comes back.
>>> I AM NOT CONVINCED THIS IS CORRECT LONG TERM FIX <<<

p4raw-id: //depot/perl@3988
cop.h
perl.c
t/op/eval.t
util.c