This will be used for cloning a ‘my’ sub on scope entry.
I was going to use pp_padcv for this, but it would end up having a
top-level if/else.
gvsv gv gelem
- padsv padav padhv padcv padany introcv
+ padsv padav padhv padcv padany introcv clonecv
once
"fc",
"padcv",
"introcv",
+ "clonecv",
"freed",
};
#endif
"fc",
"private subroutine",
"private subroutine",
+ "private subroutine",
"freed op",
};
#endif
Perl_pp_fc,
Perl_pp_padcv,
Perl_pp_introcv,
+ Perl_pp_clonecv,
}
#endif
#ifdef PERL_PPADDR_INITED
Perl_ck_fun, /* fc */
Perl_ck_null, /* padcv */
Perl_ck_null, /* introcv */
+ Perl_ck_null, /* clonecv */
}
#endif
#ifdef PERL_CHECK_INITED
0x00009b8e, /* fc */
0x00000040, /* padcv */
0x00000040, /* introcv */
+ 0x00000040, /* clonecv */
};
#endif
OP_FC = 372,
OP_PADCV = 373,
OP_INTROCV = 374,
+ OP_CLONECV = 375,
OP_max
} opcode;
-#define MAXO 375
+#define MAXO 376
#define OP_FREED MAXO
/* the OP_IS_* macros are optimized to a simple range check because
DIE(aTHX_ "panic: introcv");
}
+PP(pp_clonecv)
+{
+ DIE(aTHX_ "panic: clonecv");
+}
+
/* Translations. */
static const char S_no_symref_sv[] =
PERL_CALLCONV OP *Perl_pp_chown(pTHX);
PERL_CALLCONV OP *Perl_pp_chr(pTHX);
PERL_CALLCONV OP *Perl_pp_chroot(pTHX);
+PERL_CALLCONV OP *Perl_pp_clonecv(pTHX);
PERL_CALLCONV OP *Perl_pp_close(pTHX);
PERL_CALLCONV OP *Perl_pp_closedir(pTHX);
PERL_CALLCONV OP *Perl_pp_complement(pTHX);
$args = '' unless defined $args;
warn qq[Description "$desc" duplicates $seen{$desc}\n]
- if $seen{$desc} and $key !~ "transr|introcv";
+ if $seen{$desc} and $key !~ "transr|(?:intro|clone)cv";
die qq[Opcode "$key" duplicates $seen{$key}\n] if $seen{$key};
die qq[Opcode "freed" is reserved for the slab allocator\n]
if $key eq 'freed';
padcv private subroutine ck_null d0
introcv private subroutine ck_null d0
+clonecv private subroutine ck_null d0