summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2013-11-07 05:56:19 -0800
committerFather Chrysostomos <sprout@cpan.org>2013-11-08 17:55:51 -0800
commit97124ef6ab6884e35747b8564e7cd2db6e6ac035 (patch)
tree8040e94bc39737631b8afb71c952a8d4a15a6452 /pp_ctl.c
parenteecd355e30ad4eda87ce630d5a2a829af855d0a2 (diff)
downloadperl-97124ef6ab6884e35747b8564e7cd2db6e6ac035.tar.gz
Fix &CORE::exit/die under vmsish "hushed"
This commit makes them behave like exit and die without the ampersand by moving the OPpHUSH_VMSISH hint from exit/die op to the current statement (nextstate/cop) instead. &CORE:: subs intentionally lack a nextstate op, so they can see the hints in the caller’s nextstate op.
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 1653c17879..1ef091d35b 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3175,7 +3175,8 @@ PP(pp_exit)
#ifdef VMS
if (anum == 1 && (PL_op->op_private & OPpEXIT_VMSISH))
anum = 0;
- VMSISH_HUSHED = VMSISH_HUSHED || (PL_op->op_private & OPpHUSH_VMSISH);
+ VMSISH_HUSHED =
+ VMSISH_HUSHED || (PL_curcop->op_private & OPpHUSH_VMSISH);
#endif
}
PL_exit_flags |= PERL_EXIT_EXPECTED;