summaryrefslogtreecommitdiff
path: root/lib/B/Op_private.pm
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2022-01-13 17:14:32 +0000
committerℕicolas ℝ <nicolas@atoomic.org>2022-01-20 11:41:09 -0700
commite5e291f5d92d6fc81071b8eba3a38987d99b2efc (patch)
treefc3b658dbeb50a11ef3c5728b777b185e66a87af /lib/B/Op_private.pm
parent08abc5f416aa894248dbc5f5cacdef04d5c67370 (diff)
downloadperl-e5e291f5d92d6fc81071b8eba3a38987d99b2efc.tar.gz
Ensure that forbidden control flow messages about finally blocks say "finally" and not "defer"
Diffstat (limited to 'lib/B/Op_private.pm')
-rw-r--r--lib/B/Op_private.pm5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm
index 830c6978d2..26d52389a6 100644
--- a/lib/B/Op_private.pm
+++ b/lib/B/Op_private.pm
@@ -472,7 +472,7 @@ $bits{predec}{0} = $bf[0];
$bits{preinc}{0} = $bf[0];
$bits{prototype}{0} = $bf[0];
@{$bits{push}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
-$bits{pushdefer}{0} = $bf[0];
+@{$bits{pushdefer}}{7,0} = ('OPpDEFER_FINALLY', $bf[0]);
$bits{quotemeta}{0} = $bf[0];
@{$bits{rand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{range}{0} = $bf[0];
@@ -611,6 +611,7 @@ our %defines = (
OPpCOREARGS_DEREF2 => 2,
OPpCOREARGS_PUSHMARK => 128,
OPpCOREARGS_SCALARMOD => 64,
+ OPpDEFER_FINALLY => 128,
OPpDEREF => 48,
OPpDEREF_AV => 16,
OPpDEREF_HV => 32,
@@ -717,6 +718,7 @@ our %labels = (
OPpCOREARGS_DEREF2 => 'DEREF2',
OPpCOREARGS_PUSHMARK => 'MARK',
OPpCOREARGS_SCALARMOD => '$MOD',
+ OPpDEFER_FINALLY => 'FINALLY',
OPpDEREF_AV => 'DREFAV',
OPpDEREF_HV => 'DREFHV',
OPpDEREF_SV => 'DREFSV',
@@ -806,6 +808,7 @@ our %ops_using = (
OPpCONCAT_NESTED => [qw(concat)],
OPpCONST_BARE => [qw(const)],
OPpCOREARGS_DEREF1 => [qw(coreargs)],
+ OPpDEFER_FINALLY => [qw(pushdefer)],
OPpEARLY_CV => [qw(gv)],
OPpENTERSUB_AMPER => [qw(entersub rv2cv)],
OPpENTERSUB_INARGS => [qw(entersub)],