summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/Opcode/Opcode.pm2
-rw-r--r--lib/B/Deparse.pm22
-rw-r--r--lib/B/Op_private.pm1
-rw-r--r--op.c3
-rw-r--r--opcode.h9
-rw-r--r--opnames.h357
-rw-r--r--pp_ctl.c27
-rw-r--r--pp_proto.h1
-rw-r--r--regen/opcodes1
9 files changed, 193 insertions, 230 deletions
diff --git a/ext/Opcode/Opcode.pm b/ext/Opcode/Opcode.pm
index 9ebaa56c91..ad43c5bfac 100644
--- a/ext/Opcode/Opcode.pm
+++ b/ext/Opcode/Opcode.pm
@@ -426,7 +426,7 @@ These are a hotchpotch of opcodes still waiting to be considered
entertry leavetry -- can be used to 'hide' fatal errors
- entergiven leavegiven
+ entergiven
enterwhen leavewhen
continue
smartmatch
diff --git a/lib/B/Deparse.pm b/lib/B/Deparse.pm
index 02ea4bc5f0..fe8abbf4e1 100644
--- a/lib/B/Deparse.pm
+++ b/lib/B/Deparse.pm
@@ -2539,23 +2539,16 @@ sub pp_lock { unop(@_, "lock") }
sub pp_continue { unop(@_, "continue"); }
-sub givwhen {
- my $self = shift;
- my($op, $cx, $givwhen) = @_;
-
+sub pp_leavewhen {
+ my($self, $op, $cx) = @_;
+ my $when = $self->keyword("when");
my $enterop = $op->first;
my $cond = $enterop->first;
my $cond_str = $self->deparse($cond, 1);
my $block = $self->deparse($cond->sibling, 0);
-
- return "$givwhen ($cond_str) {\n".
- "\t$block\n".
- "\b}\cK";
+ return "$when ($cond_str) {\n\t$block\n\b}\cK";
}
-sub pp_leavegiven { givwhen(@_, $_[0]->keyword("given")); }
-sub pp_leavewhen { givwhen(@_, $_[0]->keyword("when")); }
-
sub pp_exists {
my $self = shift;
my($op, $cx) = @_;
@@ -3792,6 +3785,13 @@ sub loop_common {
$bare = 1;
}
$body = $kid;
+ } elsif ($enter->name eq "entergiven") { # given
+ my $given = $self->keyword("given");
+ my $enterop = $op->first;
+ my $topic = $enterop->first;
+ my $topic_str = $self->deparse($topic, 1);
+ my $block = $self->deparse($topic->sibling, 0);
+ return "$given ($topic_str) {\n\t$block\n\b}\cK";
} elsif ($enter->name eq "enteriter") { # foreach
my $ary = $enter->first->sibling; # first was pushmark
my $var = $ary->sibling;
diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm
index 5df382a329..4718a25031 100644
--- a/lib/B/Op_private.pm
+++ b/lib/B/Op_private.pm
@@ -405,7 +405,6 @@ $bits{lc}{0} = $bf[0];
$bits{lcfirst}{0} = $bf[0];
@{$bits{le}}{1,0} = ($bf[1], $bf[1]);
$bits{leaveeval}{0} = $bf[0];
-$bits{leavegiven}{0} = $bf[0];
@{$bits{leaveloop}}{1,0} = ($bf[1], $bf[1]);
$bits{leavesub}{0} = $bf[0];
$bits{leavesublv}{0} = $bf[0];
diff --git a/op.c b/op.c
index 5879928cb1..85d786d8a6 100644
--- a/op.c
+++ b/op.c
@@ -2210,7 +2210,6 @@ Perl_scalarvoid(pTHX_ OP *arg)
case OP_LEAVETRY:
case OP_LEAVELOOP:
case OP_LINESEQ:
- case OP_LEAVEGIVEN:
case OP_LEAVEWHEN:
kids:
for (kid = cLISTOPo->op_first; kid; kid = OpSIBLING(kid))
@@ -8776,7 +8775,7 @@ Perl_newGIVENOP(pTHX_ OP *cond, OP *block, PADOFFSET defsv_off)
OpLASTSIB_set(block, enterop);
enterop->op_flags = OPf_KIDS;
- leaveop = newUNOP(OP_LEAVEGIVEN, 0, enterop);
+ leaveop = newBINOP(OP_LEAVELOOP, 0, enterop, newOP(OP_NULL, 0));
leaveop->op_next = LINKLIST(cond);
cond->op_next = enterop;
enterop = CHECKOP(OP_ENTERGIVEN, enterop);
diff --git a/opcode.h b/opcode.h
index 08ce46fb35..37089fe3c2 100644
--- a/opcode.h
+++ b/opcode.h
@@ -364,7 +364,6 @@ EXTCONST char* const PL_op_name[] = {
"method_redir",
"method_redir_super",
"entergiven",
- "leavegiven",
"enterwhen",
"leavewhen",
"continue",
@@ -768,7 +767,6 @@ EXTCONST char* const PL_op_desc[] = {
"redirect method with known name",
"redirect super method with known name",
"given()",
- "leave given block",
"when()",
"leave when block",
"continue",
@@ -1184,7 +1182,6 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_method_redir,
Perl_pp_method_redir_super,
Perl_pp_entergiven,
- Perl_pp_leavegiven,
Perl_pp_enterwhen,
Perl_pp_leavewhen,
Perl_pp_continue,
@@ -1596,7 +1593,6 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* method_redir */
Perl_ck_null, /* method_redir_super */
Perl_ck_null, /* entergiven */
- Perl_ck_null, /* leavegiven */
Perl_ck_null, /* enterwhen */
Perl_ck_null, /* leavewhen */
Perl_ck_null, /* continue */
@@ -2004,7 +2000,6 @@ EXTCONST U32 PL_opargs[] = {
0x00000e40, /* method_redir */
0x00000e40, /* method_redir_super */
0x00000940, /* entergiven */
- 0x00000100, /* leavegiven */
0x00000340, /* enterwhen */
0x00000100, /* leavewhen */
0x00000000, /* continue */
@@ -2667,7 +2662,6 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* method_redir */
0, /* method_redir_super */
-1, /* entergiven */
- 0, /* leavegiven */
0, /* enterwhen */
0, /* leavewhen */
-1, /* continue */
@@ -2863,7 +2857,7 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
*/
EXTCONST U16 PL_op_private_bitdefs[] = {
- 0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, argdefelem, method, method_named, method_super, method_redir, method_redir_super, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst */
+ 0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, argdefelem, method, method_named, method_super, method_redir, method_redir_super, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst */
0x2ebc, 0x3fb9, /* pushmark */
0x00bd, /* wantarray, runcv */
0x0578, 0x1930, 0x406c, 0x3b28, 0x3305, /* const */
@@ -3158,7 +3152,6 @@ EXTCONST U8 PL_op_private_valid[] = {
/* METHOD_REDIR */ (OPpARG1_MASK),
/* METHOD_REDIR_SUPER */ (OPpARG1_MASK),
/* ENTERGIVEN */ (0),
- /* LEAVEGIVEN */ (OPpARG1_MASK),
/* ENTERWHEN */ (OPpARG1_MASK),
/* LEAVEWHEN */ (OPpARG1_MASK),
/* CONTINUE */ (0),
diff --git a/opnames.h b/opnames.h
index ed4155eeeb..2098324868 100644
--- a/opnames.h
+++ b/opnames.h
@@ -232,188 +232,187 @@ typedef enum opcode {
OP_METHOD_REDIR = 215,
OP_METHOD_REDIR_SUPER = 216,
OP_ENTERGIVEN = 217,
- OP_LEAVEGIVEN = 218,
- OP_ENTERWHEN = 219,
- OP_LEAVEWHEN = 220,
- OP_CONTINUE = 221,
- OP_OPEN = 222,
- OP_CLOSE = 223,
- OP_PIPE_OP = 224,
- OP_FILENO = 225,
- OP_UMASK = 226,
- OP_BINMODE = 227,
- OP_TIE = 228,
- OP_UNTIE = 229,
- OP_TIED = 230,
- OP_DBMOPEN = 231,
- OP_DBMCLOSE = 232,
- OP_SSELECT = 233,
- OP_SELECT = 234,
- OP_GETC = 235,
- OP_READ = 236,
- OP_ENTERWRITE = 237,
- OP_LEAVEWRITE = 238,
- OP_PRTF = 239,
- OP_PRINT = 240,
- OP_SAY = 241,
- OP_SYSOPEN = 242,
- OP_SYSSEEK = 243,
- OP_SYSREAD = 244,
- OP_SYSWRITE = 245,
- OP_EOF = 246,
- OP_TELL = 247,
- OP_SEEK = 248,
- OP_TRUNCATE = 249,
- OP_FCNTL = 250,
- OP_IOCTL = 251,
- OP_FLOCK = 252,
- OP_SEND = 253,
- OP_RECV = 254,
- OP_SOCKET = 255,
- OP_SOCKPAIR = 256,
- OP_BIND = 257,
- OP_CONNECT = 258,
- OP_LISTEN = 259,
- OP_ACCEPT = 260,
- OP_SHUTDOWN = 261,
- OP_GSOCKOPT = 262,
- OP_SSOCKOPT = 263,
- OP_GETSOCKNAME = 264,
- OP_GETPEERNAME = 265,
- OP_LSTAT = 266,
- OP_STAT = 267,
- OP_FTRREAD = 268,
- OP_FTRWRITE = 269,
- OP_FTREXEC = 270,
- OP_FTEREAD = 271,
- OP_FTEWRITE = 272,
- OP_FTEEXEC = 273,
- OP_FTIS = 274,
- OP_FTSIZE = 275,
- OP_FTMTIME = 276,
- OP_FTATIME = 277,
- OP_FTCTIME = 278,
- OP_FTROWNED = 279,
- OP_FTEOWNED = 280,
- OP_FTZERO = 281,
- OP_FTSOCK = 282,
- OP_FTCHR = 283,
- OP_FTBLK = 284,
- OP_FTFILE = 285,
- OP_FTDIR = 286,
- OP_FTPIPE = 287,
- OP_FTSUID = 288,
- OP_FTSGID = 289,
- OP_FTSVTX = 290,
- OP_FTLINK = 291,
- OP_FTTTY = 292,
- OP_FTTEXT = 293,
- OP_FTBINARY = 294,
- OP_CHDIR = 295,
- OP_CHOWN = 296,
- OP_CHROOT = 297,
- OP_UNLINK = 298,
- OP_CHMOD = 299,
- OP_UTIME = 300,
- OP_RENAME = 301,
- OP_LINK = 302,
- OP_SYMLINK = 303,
- OP_READLINK = 304,
- OP_MKDIR = 305,
- OP_RMDIR = 306,
- OP_OPEN_DIR = 307,
- OP_READDIR = 308,
- OP_TELLDIR = 309,
- OP_SEEKDIR = 310,
- OP_REWINDDIR = 311,
- OP_CLOSEDIR = 312,
- OP_FORK = 313,
- OP_WAIT = 314,
- OP_WAITPID = 315,
- OP_SYSTEM = 316,
- OP_EXEC = 317,
- OP_KILL = 318,
- OP_GETPPID = 319,
- OP_GETPGRP = 320,
- OP_SETPGRP = 321,
- OP_GETPRIORITY = 322,
- OP_SETPRIORITY = 323,
- OP_TIME = 324,
- OP_TMS = 325,
- OP_LOCALTIME = 326,
- OP_GMTIME = 327,
- OP_ALARM = 328,
- OP_SLEEP = 329,
- OP_SHMGET = 330,
- OP_SHMCTL = 331,
- OP_SHMREAD = 332,
- OP_SHMWRITE = 333,
- OP_MSGGET = 334,
- OP_MSGCTL = 335,
- OP_MSGSND = 336,
- OP_MSGRCV = 337,
- OP_SEMOP = 338,
- OP_SEMGET = 339,
- OP_SEMCTL = 340,
- OP_REQUIRE = 341,
- OP_DOFILE = 342,
- OP_HINTSEVAL = 343,
- OP_ENTEREVAL = 344,
- OP_LEAVEEVAL = 345,
- OP_ENTERTRY = 346,
- OP_LEAVETRY = 347,
- OP_GHBYNAME = 348,
- OP_GHBYADDR = 349,
- OP_GHOSTENT = 350,
- OP_GNBYNAME = 351,
- OP_GNBYADDR = 352,
- OP_GNETENT = 353,
- OP_GPBYNAME = 354,
- OP_GPBYNUMBER = 355,
- OP_GPROTOENT = 356,
- OP_GSBYNAME = 357,
- OP_GSBYPORT = 358,
- OP_GSERVENT = 359,
- OP_SHOSTENT = 360,
- OP_SNETENT = 361,
- OP_SPROTOENT = 362,
- OP_SSERVENT = 363,
- OP_EHOSTENT = 364,
- OP_ENETENT = 365,
- OP_EPROTOENT = 366,
- OP_ESERVENT = 367,
- OP_GPWNAM = 368,
- OP_GPWUID = 369,
- OP_GPWENT = 370,
- OP_SPWENT = 371,
- OP_EPWENT = 372,
- OP_GGRNAM = 373,
- OP_GGRGID = 374,
- OP_GGRENT = 375,
- OP_SGRENT = 376,
- OP_EGRENT = 377,
- OP_GETLOGIN = 378,
- OP_SYSCALL = 379,
- OP_LOCK = 380,
- OP_ONCE = 381,
- OP_CUSTOM = 382,
- OP_COREARGS = 383,
- OP_AVHVSWITCH = 384,
- OP_RUNCV = 385,
- OP_FC = 386,
- OP_PADCV = 387,
- OP_INTROCV = 388,
- OP_CLONECV = 389,
- OP_PADRANGE = 390,
- OP_REFASSIGN = 391,
- OP_LVREF = 392,
- OP_LVREFSLICE = 393,
- OP_LVAVREF = 394,
- OP_ANONCONST = 395,
+ OP_ENTERWHEN = 218,
+ OP_LEAVEWHEN = 219,
+ OP_CONTINUE = 220,
+ OP_OPEN = 221,
+ OP_CLOSE = 222,
+ OP_PIPE_OP = 223,
+ OP_FILENO = 224,
+ OP_UMASK = 225,
+ OP_BINMODE = 226,
+ OP_TIE = 227,
+ OP_UNTIE = 228,
+ OP_TIED = 229,
+ OP_DBMOPEN = 230,
+ OP_DBMCLOSE = 231,
+ OP_SSELECT = 232,
+ OP_SELECT = 233,
+ OP_GETC = 234,
+ OP_READ = 235,
+ OP_ENTERWRITE = 236,
+ OP_LEAVEWRITE = 237,
+ OP_PRTF = 238,
+ OP_PRINT = 239,
+ OP_SAY = 240,
+ OP_SYSOPEN = 241,
+ OP_SYSSEEK = 242,
+ OP_SYSREAD = 243,
+ OP_SYSWRITE = 244,
+ OP_EOF = 245,
+ OP_TELL = 246,
+ OP_SEEK = 247,
+ OP_TRUNCATE = 248,
+ OP_FCNTL = 249,
+ OP_IOCTL = 250,
+ OP_FLOCK = 251,
+ OP_SEND = 252,
+ OP_RECV = 253,
+ OP_SOCKET = 254,
+ OP_SOCKPAIR = 255,
+ OP_BIND = 256,
+ OP_CONNECT = 257,
+ OP_LISTEN = 258,
+ OP_ACCEPT = 259,
+ OP_SHUTDOWN = 260,
+ OP_GSOCKOPT = 261,
+ OP_SSOCKOPT = 262,
+ OP_GETSOCKNAME = 263,
+ OP_GETPEERNAME = 264,
+ OP_LSTAT = 265,
+ OP_STAT = 266,
+ OP_FTRREAD = 267,
+ OP_FTRWRITE = 268,
+ OP_FTREXEC = 269,
+ OP_FTEREAD = 270,
+ OP_FTEWRITE = 271,
+ OP_FTEEXEC = 272,
+ OP_FTIS = 273,
+ OP_FTSIZE = 274,
+ OP_FTMTIME = 275,
+ OP_FTATIME = 276,
+ OP_FTCTIME = 277,
+ OP_FTROWNED = 278,
+ OP_FTEOWNED = 279,
+ OP_FTZERO = 280,
+ OP_FTSOCK = 281,
+ OP_FTCHR = 282,
+ OP_FTBLK = 283,
+ OP_FTFILE = 284,
+ OP_FTDIR = 285,
+ OP_FTPIPE = 286,
+ OP_FTSUID = 287,
+ OP_FTSGID = 288,
+ OP_FTSVTX = 289,
+ OP_FTLINK = 290,
+ OP_FTTTY = 291,
+ OP_FTTEXT = 292,
+ OP_FTBINARY = 293,
+ OP_CHDIR = 294,
+ OP_CHOWN = 295,
+ OP_CHROOT = 296,
+ OP_UNLINK = 297,
+ OP_CHMOD = 298,
+ OP_UTIME = 299,
+ OP_RENAME = 300,
+ OP_LINK = 301,
+ OP_SYMLINK = 302,
+ OP_READLINK = 303,
+ OP_MKDIR = 304,
+ OP_RMDIR = 305,
+ OP_OPEN_DIR = 306,
+ OP_READDIR = 307,
+ OP_TELLDIR = 308,
+ OP_SEEKDIR = 309,
+ OP_REWINDDIR = 310,
+ OP_CLOSEDIR = 311,
+ OP_FORK = 312,
+ OP_WAIT = 313,
+ OP_WAITPID = 314,
+ OP_SYSTEM = 315,
+ OP_EXEC = 316,
+ OP_KILL = 317,
+ OP_GETPPID = 318,
+ OP_GETPGRP = 319,
+ OP_SETPGRP = 320,
+ OP_GETPRIORITY = 321,
+ OP_SETPRIORITY = 322,
+ OP_TIME = 323,
+ OP_TMS = 324,
+ OP_LOCALTIME = 325,
+ OP_GMTIME = 326,
+ OP_ALARM = 327,
+ OP_SLEEP = 328,
+ OP_SHMGET = 329,
+ OP_SHMCTL = 330,
+ OP_SHMREAD = 331,
+ OP_SHMWRITE = 332,
+ OP_MSGGET = 333,
+ OP_MSGCTL = 334,
+ OP_MSGSND = 335,
+ OP_MSGRCV = 336,
+ OP_SEMOP = 337,
+ OP_SEMGET = 338,
+ OP_SEMCTL = 339,
+ OP_REQUIRE = 340,
+ OP_DOFILE = 341,
+ OP_HINTSEVAL = 342,
+ OP_ENTEREVAL = 343,
+ OP_LEAVEEVAL = 344,
+ OP_ENTERTRY = 345,
+ OP_LEAVETRY = 346,
+ OP_GHBYNAME = 347,
+ OP_GHBYADDR = 348,
+ OP_GHOSTENT = 349,
+ OP_GNBYNAME = 350,
+ OP_GNBYADDR = 351,
+ OP_GNETENT = 352,
+ OP_GPBYNAME = 353,
+ OP_GPBYNUMBER = 354,
+ OP_GPROTOENT = 355,
+ OP_GSBYNAME = 356,
+ OP_GSBYPORT = 357,
+ OP_GSERVENT = 358,
+ OP_SHOSTENT = 359,
+ OP_SNETENT = 360,
+ OP_SPROTOENT = 361,
+ OP_SSERVENT = 362,
+ OP_EHOSTENT = 363,
+ OP_ENETENT = 364,
+ OP_EPROTOENT = 365,
+ OP_ESERVENT = 366,
+ OP_GPWNAM = 367,
+ OP_GPWUID = 368,
+ OP_GPWENT = 369,
+ OP_SPWENT = 370,
+ OP_EPWENT = 371,
+ OP_GGRNAM = 372,
+ OP_GGRGID = 373,
+ OP_GGRENT = 374,
+ OP_SGRENT = 375,
+ OP_EGRENT = 376,
+ OP_GETLOGIN = 377,
+ OP_SYSCALL = 378,
+ OP_LOCK = 379,
+ OP_ONCE = 380,
+ OP_CUSTOM = 381,
+ OP_COREARGS = 382,
+ OP_AVHVSWITCH = 383,
+ OP_RUNCV = 384,
+ OP_FC = 385,
+ OP_PADCV = 386,
+ OP_INTROCV = 387,
+ OP_CLONECV = 388,
+ OP_PADRANGE = 389,
+ OP_REFASSIGN = 390,
+ OP_LVREF = 391,
+ OP_LVREFSLICE = 392,
+ OP_LVAVREF = 393,
+ OP_ANONCONST = 394,
OP_max
} opcode;
-#define MAXO 396
+#define MAXO 395
#define OP_FREED MAXO
/* the OP_IS_* macros are optimized to a simple range check because
diff --git a/pp_ctl.c b/pp_ctl.c
index 3239d37de8..aa8f2cfdb9 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -4571,31 +4571,6 @@ PP(pp_entergiven)
RETURN;
}
-PP(pp_leavegiven)
-{
- PERL_CONTEXT *cx;
- U8 gimme;
- SV **oldsp;
- PERL_UNUSED_CONTEXT;
-
- cx = CX_CUR();
- assert(CxTYPE(cx) == CXt_LOOP_GIVEN);
- oldsp = PL_stack_base + cx->blk_oldsp;
- gimme = cx->blk_gimme;
-
- if (gimme == G_VOID)
- PL_stack_sp = oldsp;
- else
- leave_adjust_stacks(oldsp, oldsp, gimme, 1);
-
- CX_LEAVE_SCOPE(cx);
- cx_poploop(cx);
- cx_popblock(cx);
- CX_POP(cx);
-
- return NORMAL;
-}
-
PP(pp_smartmatch)
{
dSP;
@@ -4676,7 +4651,7 @@ PP(pp_leavewhen)
}
else {
PERL_ASYNC_CHECK();
- assert(cx->blk_loop.my_op->op_nextop->op_type == OP_LEAVEGIVEN);
+ assert(cx->blk_loop.my_op->op_nextop->op_type == OP_LEAVELOOP);
return cx->blk_loop.my_op->op_nextop;
}
}
diff --git a/pp_proto.h b/pp_proto.h
index 34fa56d959..2eb4bacbf3 100644
--- a/pp_proto.h
+++ b/pp_proto.h
@@ -134,7 +134,6 @@ PERL_CALLCONV OP *Perl_pp_lc(pTHX);
PERL_CALLCONV OP *Perl_pp_le(pTHX);
PERL_CALLCONV OP *Perl_pp_leave(pTHX);
PERL_CALLCONV OP *Perl_pp_leaveeval(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavegiven(pTHX);
PERL_CALLCONV OP *Perl_pp_leaveloop(pTHX);
PERL_CALLCONV OP *Perl_pp_leavesub(pTHX);
PERL_CALLCONV OP *Perl_pp_leavesublv(pTHX);
diff --git a/regen/opcodes b/regen/opcodes
index 037ac89f0f..1a1da125c9 100644
--- a/regen/opcodes
+++ b/regen/opcodes
@@ -329,7 +329,6 @@ method_redir redirect method with known name ck_null d.
method_redir_super redirect super method with known name ck_null d.
entergiven given() ck_null d{
-leavegiven leave given block ck_null 1
enterwhen when() ck_null d|
leavewhen leave when block ck_null 1
continue continue ck_null 0