summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-10-14 05:37:10 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-10-14 05:37:10 +0000
commitebf99b04cc4af488057bd9d08bb6a2768960923c (patch)
tree96236f57f5d72d768709942cdfdf0dd85a94a79a /pp_ctl.c
parent6fbe551ff3e4f956fc6d85824c9ea2520e57cefe (diff)
downloadperl-ebf99b04cc4af488057bd9d08bb6a2768960923c.tar.gz
let docatch() pass the buck when restartop turns out to be null,
making exceptions in BEGIN{} propagate as expected p4raw-id: //depot/perl@1947
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 332b24c6e8..c882e9ed66 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2308,15 +2308,14 @@ docatch(OP *o)
JMPENV_PUSH(ret);
switch (ret) {
default: /* topmost level handles it */
+pass_the_buck:
JMPENV_POP;
PL_op = oldop;
JMPENV_JUMP(ret);
/* NOTREACHED */
case 3:
- if (!PL_restartop) {
- PerlIO_printf(PerlIO_stderr(), "panic: restartop\n");
- break;
- }
+ if (!PL_restartop)
+ goto pass_the_buck;
PL_op = PL_restartop;
PL_restartop = 0;
/* FALL THROUGH */