PP(pp_defined)
{
dVAR; dSP;
- register SV* sv;
+ SV* sv;
bool defined;
const int op_type = PL_op->op_type;
const bool is_dor = (op_type == OP_DOR || op_type == OP_DORASSIGN);
/* Unless the left argument is integer in range we are going to have to
use NV maths. Hence only attempt to coerce the right argument if
we know the left is integer. */
- register UV auv = 0;
+ UV auv = 0;
bool auvok = FALSE;
bool a_valid = 0;
if ((auvok = SvUOK(svl)))
auv = SvUVX(svl);
else {
- register const IV aiv = SvIVX(svl);
+ const IV aiv = SvIVX(svl);
if (aiv >= 0) {
auv = aiv;
auvok = 1; /* Now acting as a sign flag. */
if (a_valid) {
bool result_good = 0;
UV result;
- register UV buv;
+ UV buv;
bool buvok = SvUOK(svr);
if (buvok)
buv = SvUVX(svr);
else {
- register const IV biv = SvIVX(svr);
+ const IV biv = SvIVX(svr);
if (biv >= 0) {
buv = biv;
buvok = 1;
PP(pp_print)
{
dVAR; dSP; dMARK; dORIGMARK;
- register PerlIO *fp;
+ PerlIO *fp;
MAGIC *mg;
GV * const gv
= (PL_op->op_flags & OPf_STACKED) ? MUTABLE_GV(*++MARK) : PL_defoutgv;
SV **firstrelem = PL_stack_base + POPMARK + 1;
SV **firstlelem = lastrelem + 1;
- register SV **relem;
- register SV **lelem;
+ SV **relem;
+ SV **lelem;
- register SV *sv;
- register AV *ary;
+ SV *sv;
+ AV *ary;
I32 gimme;
HV *hash;
PP(pp_qr)
{
dVAR; dSP;
- register PMOP * const pm = cPMOP;
+ PMOP * const pm = cPMOP;
REGEXP * rx = PM_GETRE(pm);
SV * const pkg = rx ? CALLREG_PACKAGE(rx) : NULL;
SV * const rv = sv_newmortal();
PP(pp_match)
{
dVAR; dSP; dTARG;
- register PMOP *pm = cPMOP;
+ PMOP *pm = cPMOP;
PMOP *dynpm = pm;
- register const char *t;
- register const char *s;
+ const char *t;
+ const char *s;
const char *strend;
I32 global;
U8 r_flags = REXEC_CHECKED;
const char *truebase; /* Start of string */
- register REGEXP *rx = PM_GETRE(pm);
+ REGEXP *rx = PM_GETRE(pm);
bool rxtainted;
const I32 gimme = GIMME;
STRLEN len;
Perl_do_readline(pTHX)
{
dVAR; dSP; dTARGETSTACKED;
- register SV *sv;
+ SV *sv;
STRLEN tmplen = 0;
STRLEN offset;
PerlIO *fp;
- register IO * const io = GvIO(PL_last_in_gv);
- register const I32 type = PL_op->op_type;
+ IO * const io = GvIO(PL_last_in_gv);
+ const I32 type = PL_op->op_type;
const I32 gimme = GIMME_V;
if (io) {
PP(pp_iter)
{
dVAR; dSP;
- register PERL_CONTEXT *cx;
+ PERL_CONTEXT *cx;
SV *sv, *oldsv;
SV **itersvp;
AV *av = NULL; /* used for LOOP_FOR on arrays and the stack */
PP(pp_subst)
{
dVAR; dSP; dTARG;
- register PMOP *pm = cPMOP;
+ PMOP *pm = cPMOP;
PMOP *rpm = pm;
- register char *s;
+ char *s;
char *strend;
- register char *m;
+ char *m;
const char *c;
- register char *d;
+ char *d;
STRLEN clen;
I32 iters = 0;
I32 maxiters;
- register I32 i;
+ I32 i;
bool once;
U8 rxtainted = 0; /* holds various SUBST_TAINT_* flag bits.
See "how taint works" above */
char *orig;
U8 r_flags;
- register REGEXP *rx = PM_GETRE(pm);
+ REGEXP *rx = PM_GETRE(pm);
STRLEN len;
int force_on_match = 0;
const I32 oldsave = PL_savestack_ix;
#endif
SV *nsv = NULL;
/* known replacement string? */
- register SV *dstr = (pm->op_pmflags & PMf_CONST) ? POPs : NULL;
+ SV *dstr = (pm->op_pmflags & PMf_CONST) ? POPs : NULL;
PERL_ASYNC_CHECK();
setup_match:
s = SvPV_mutable(TARG, len);
- if (!SvPOKp(TARG) || SvTYPE(TARG) == SVt_PVGV)
+ if (!SvPOKp(TARG) || SvTYPE(TARG) == SVt_PVGV || SvVOK(TARG))
force_on_match = 1;
/* only replace once? */
dstr = newSVpvn_flags(m, s-m, SVs_TEMP | (DO_UTF8(TARG) ? SVf_UTF8 : 0));
PL_curpm = pm;
if (!c) {
- register PERL_CONTEXT *cx;
+ PERL_CONTEXT *cx;
SPAGAIN;
/* note that a whole bunch of local vars are saved here for
* use by pp_substcont: here's a list of them in case you're
SV **newsp;
PMOP *newpm;
I32 gimme;
- register PERL_CONTEXT *cx;
+ PERL_CONTEXT *cx;
SV *sv;
if (CxMULTICALL(&cxstack[cxstack_ix]))
{
dVAR; dSP; dPOPss;
GV *gv;
- register CV *cv;
- register PERL_CONTEXT *cx;
+ CV *cv;
+ PERL_CONTEXT *cx;
I32 gimme;
const bool hasargs = (PL_op->op_flags & OPf_STACKED) != 0;
if (!(CvISXSUB(cv))) {
/* This path taken at least 75% of the time */
dMARK;
- register I32 items = SP - MARK;
- AV* const padlist = CvPADLIST(cv);
+ I32 items = SP - MARK;
+ PADLIST * const padlist = CvPADLIST(cv);
PUSHBLOCK(cx, CXt_SUB, MARK);
PUSHSUB(cx);
cx->blk_sub.retop = PL_op->op_next;