Re: [PATCH] Re: [perl #24119] CPAN.pm error in Win32: uses rename() not File::Copy...
[p5sagit/p5-mst-13.2.git] / op.c
diff --git a/op.c b/op.c
index 02d4f17..8f8de12 100644 (file)
--- a/op.c
+++ b/op.c
@@ -190,14 +190,14 @@ S_too_many_arguments(pTHX_ OP *o, const char *name)
 }
 
 STATIC void
-S_bad_type(pTHX_ I32 n, const char *t, const char *name, OP *kid)
+S_bad_type(pTHX_ I32 n, const char *t, const char *name, const OP *kid)
 {
     yyerror(Perl_form(aTHX_ "Type of arg %d to %s must be %s (not %s)",
                 (int)n, name, t, OP_DESC(kid)));
 }
 
 STATIC void
-S_no_bareword_allowed(pTHX_ OP *o)
+S_no_bareword_allowed(pTHX_ const OP *o)
 {
     qerror(Perl_mess(aTHX_
                     "Bareword \"%"SVf"\" not allowed while \"strict subs\" in use",
@@ -270,7 +270,6 @@ Perl_allocmy(pTHX_ char *name)
 void
 Perl_op_free(pTHX_ OP *o)
 {
-    register OP *kid, *nextkid;
     OPCODE type;
     PADOFFSET refcnt;
 
@@ -297,6 +296,7 @@ Perl_op_free(pTHX_ OP *o)
     }
 
     if (o->op_flags & OPf_KIDS) {
+        register OP *kid, *nextkid;
        for (kid = cUNOPo->op_first; kid; kid = nextkid) {
            nextkid = kid->op_sibling; /* Get before next freeing kid */
            op_free(kid);
@@ -494,13 +494,13 @@ Perl_op_refcnt_unlock(pTHX)
 OP *
 Perl_linklist(pTHX_ OP *o)
 {
-    register OP *kid;
 
     if (o->op_next)
        return o->op_next;
 
     /* establish postfix order */
     if (cUNOPo->op_first) {
+        register OP *kid;
        o->op_next = LINKLIST(cUNOPo->op_first);
        for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) {
            if (kid->op_sibling)
@@ -531,7 +531,7 @@ S_scalarboolean(pTHX_ OP *o)
 {
     if (o->op_type == OP_SASSIGN && cBINOPo->op_first->op_type == OP_CONST) {
        if (ckWARN(WARN_SYNTAX)) {
-           line_t oldline = CopLINE(PL_curcop);
+           const line_t oldline = CopLINE(PL_curcop);
 
            if (PL_copline != NOLINE)
                CopLINE_set(PL_curcop, PL_copline);
@@ -843,8 +843,8 @@ Perl_scalarvoid(pTHX_ OP *o)
 OP *
 Perl_listkids(pTHX_ OP *o)
 {
-    OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
+        OP *kid;
        for (kid = cLISTOPo->op_first; kid; kid = kid->op_sibling)
            list(kid);
     }
@@ -929,14 +929,13 @@ Perl_list(pTHX_ OP *o)
 OP *
 Perl_scalarseq(pTHX_ OP *o)
 {
-    OP *kid;
-
     if (o) {
        if (o->op_type == OP_LINESEQ ||
             o->op_type == OP_SCOPE ||
             o->op_type == OP_LEAVE ||
             o->op_type == OP_LEAVETRY)
        {
+            OP *kid;
            for (kid = cLISTOPo->op_first; kid; kid = kid->op_sibling) {
                if (kid->op_sibling) {
                    scalarvoid(kid);
@@ -956,8 +955,8 @@ Perl_scalarseq(pTHX_ OP *o)
 STATIC OP *
 S_modkids(pTHX_ OP *o, I32 type)
 {
-    OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
+        OP *kid;
        for (kid = cLISTOPo->op_first; kid; kid = kid->op_sibling)
            mod(kid, type);
     }
@@ -1317,7 +1316,7 @@ Perl_mod(pTHX_ OP *o, I32 type)
 }
 
 STATIC bool
-S_scalar_mod_type(pTHX_ OP *o, I32 type)
+S_scalar_mod_type(pTHX_ const OP *o, I32 type)
 {
     switch (type) {
     case OP_SASSIGN:
@@ -1364,7 +1363,7 @@ S_scalar_mod_type(pTHX_ OP *o, I32 type)
 }
 
 STATIC bool
-S_is_handle_constructor(pTHX_ OP *o, I32 argnum)
+S_is_handle_constructor(pTHX_ const OP *o, I32 argnum)
 {
     switch (o->op_type) {
     case OP_PIPE_OP:
@@ -1389,8 +1388,8 @@ S_is_handle_constructor(pTHX_ OP *o, I32 argnum)
 OP *
 Perl_refkids(pTHX_ OP *o, I32 type)
 {
-    OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
+        OP *kid;
        for (kid = cLISTOPo->op_first; kid; kid = kid->op_sibling)
            ref(kid, type);
     }
@@ -1617,8 +1616,8 @@ to respect attribute syntax properly would be welcome.
 */
 
 void
-Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv,
-                        char *attrstr, STRLEN len)
+Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv,
+                        const char *attrstr, STRLEN len)
 {
     OP *attrs = Nullop;
 
@@ -1629,7 +1628,7 @@ Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv,
     while (len) {
         for (; isSPACE(*attrstr) && len; --len, ++attrstr) ;
         if (len) {
-            char *sstr = attrstr;
+            const char *sstr = attrstr;
             for (; !isSPACE(*attrstr) && len; --len, ++attrstr) ;
             attrs = append_elem(OP_LIST, attrs,
                                 newSVOP(OP_CONST, 0,
@@ -1650,7 +1649,6 @@ Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv,
 STATIC OP *
 S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
 {
-    OP *kid;
     I32 type;
 
     if (!o || PL_error_count)
@@ -1658,6 +1656,7 @@ S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
 
     type = o->op_type;
     if (type == OP_LIST) {
+        OP *kid;
        for (kid = cLISTOPo->op_first; kid; kid = kid->op_sibling)
            my_kid(kid, attrs, imopsp);
     } else if (type == OP_UNDEF) {
@@ -1871,7 +1870,7 @@ Perl_block_start(pTHX_ int full)
 OP*
 Perl_block_end(pTHX_ I32 floor, OP *seq)
 {
-    int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
+    const int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
     OP* retval = scalarseq(seq);
     LEAVE_SCOPE(floor);
     PL_compiling.op_private = (U8)(PL_hints & HINT_PRIVATE_MASK);
@@ -1884,7 +1883,7 @@ Perl_block_end(pTHX_ I32 floor, OP *seq)
 STATIC OP *
 S_newDEFSVOP(pTHX)
 {
-    I32 offset = pad_findmy("$_");
+    const I32 offset = pad_findmy("$_");
     if (offset == NOT_IN_PAD || PAD_COMPNAME_FLAGS(offset) & SVpad_OUR) {
        return newSVREF(newGVOP(OP_GV, 0, PL_defgv));
     }
@@ -2086,7 +2085,7 @@ OP *
 Perl_gen_constant_list(pTHX_ register OP *o)
 {
     register OP *curop;
-    I32 oldtmps_floor = PL_tmps_floor;
+    const I32 oldtmps_floor = PL_tmps_floor;
 
     list(o);
     if (PL_error_count)
@@ -2129,7 +2128,7 @@ Perl_convert(pTHX_ I32 type, I32 flags, OP *o)
     o->op_flags |= flags;
 
     o = CHECKOP(type, o);
-    if (o->op_type != type)
+    if (o->op_type != (unsigned)type)
        return o;
 
     return fold_constants(o);
@@ -2146,7 +2145,7 @@ Perl_append_elem(pTHX_ I32 type, OP *first, OP *last)
     if (!last)
        return first;
 
-    if (first->op_type != type
+    if (first->op_type != (unsigned)type
        || (type == OP_LIST && (first->op_flags & OPf_PARENS)))
     {
        return newLISTOP(type, 0, first, last);
@@ -2171,10 +2170,10 @@ Perl_append_list(pTHX_ I32 type, LISTOP *first, LISTOP *last)
     if (!last)
        return (OP*)first;
 
-    if (first->op_type != type)
+    if (first->op_type != (unsigned)type)
        return prepend_elem(type, (OP*)first, (OP*)last);
 
-    if (last->op_type != type)
+    if (last->op_type != (unsigned)type)
        return append_elem(type, (OP*)first, (OP*)last);
 
     first->op_last->op_sibling = last->op_first;
@@ -2195,7 +2194,7 @@ Perl_prepend_elem(pTHX_ I32 type, OP *first, OP *last)
     if (!last)
        return first;
 
-    if (last->op_type == type) {
+    if (last->op_type == (unsigned)type) {
        if (type == OP_LIST) {  /* already a PUSHMARK there */
            first->op_sibling = ((LISTOP*)last)->op_first->op_sibling;
            ((LISTOP*)last)->op_first->op_sibling = first;
@@ -2956,7 +2955,7 @@ Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
 void
 Perl_package(pTHX_ OP *o)
 {
-    char *name;
+    const char *name;
     STRLEN len;
 
     save_hptr(&PL_curstash);
@@ -3134,9 +3133,9 @@ Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args)
        }
     }
     {
-       line_t ocopline = PL_copline;
-       COP *ocurcop = PL_curcop;
-       int oexpect = PL_expect;
+       const line_t ocopline = PL_copline;
+       COP * const ocurcop = PL_curcop;
+       const int oexpect = PL_expect;
 
        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
                veop, modname, imop);
@@ -3178,7 +3177,7 @@ Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listval)
 }
 
 STATIC I32
-S_list_assignment(pTHX_ register OP *o)
+S_list_assignment(pTHX_ register const OP *o)
 {
     if (!o)
        return TRUE;
@@ -3187,8 +3186,8 @@ S_list_assignment(pTHX_ register OP *o)
        o = cUNOPo->op_first;
 
     if (o->op_type == OP_COND_EXPR) {
-       I32 t = list_assignment(cLOGOPo->op_first->op_sibling);
-       I32 f = list_assignment(cLOGOPo->op_first->op_sibling->op_sibling);
+        const I32 t = list_assignment(cLOGOPo->op_first->op_sibling);
+        const I32 f = list_assignment(cLOGOPo->op_first->op_sibling->op_sibling);
 
        if (t && f)
            return TRUE;
@@ -3445,7 +3444,7 @@ Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
        SV **svp = av_fetch(CopFILEAV(PL_curcop), (I32)CopLINE(cop), FALSE);
         if (svp && *svp != &PL_sv_undef ) {
            (void)SvIOK_on(*svp);
-           SvIVX(*svp) = PTR2IV(cop);
+           SvIV_set(*svp, PTR2IV(cop));
        }
     }
 
@@ -3502,7 +3501,7 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
        }
        else {
            /* check for C<my $x if 0>, or C<my($x,$y) if 0> */
-           OP *o2 = other;
+           const OP *o2 = other;
            if ( ! (o2->op_type == OP_LIST
                    && (( o2 = cUNOPx(o2)->op_first))
                    && o2->op_type == OP_PUSHMARK
@@ -3528,8 +3527,8 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
     else if (ckWARN(WARN_MISC) && (first->op_flags & OPf_KIDS) &&
              type != OP_DOR) /* [#24076] Don't warn for <FH> err FOO. */
     {
-       OP *k1 = ((UNOP*)first)->op_first;
-       OP *k2 = k1->op_sibling;
+       const OP *k1 = ((UNOP*)first)->op_first;
+       const OP *k2 = k1->op_sibling;
        OPCODE warnop = 0;
        switch (first->op_type)
        {
@@ -3554,7 +3553,7 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
            break;
        }
        if (warnop) {
-           line_t oldline = CopLINE(PL_curcop);
+           const line_t oldline = CopLINE(PL_curcop);
            CopLINE_set(PL_curcop, PL_copline);
            Perl_warner(aTHX_ packWARN(WARN_MISC),
                 "Value of %s%s can be \"0\"; test with defined()",
@@ -4101,7 +4100,7 @@ Perl_cv_const_sv(pTHX_ CV *cv)
  */
 
 SV *
-Perl_op_const_sv(pTHX_ OP *o, CV *cv)
+Perl_op_const_sv(pTHX_ const OP *o, CV *cv)
 {
     SV *sv = Nullsv;
 
@@ -4181,8 +4180,8 @@ CV *
 Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
 {
     STRLEN n_a;
-    char *name;
-    char *aname;
+    const char *name;
+    const char *aname;
     GV *gv;
     char *ps;
     register CV *cv=0;
@@ -4255,7 +4254,7 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
        const_sv = op_const_sv(block, Nullcv);
 
     if (cv) {
-        bool exists = CvROOT(cv) || CvXSUB(cv);
+        const bool exists = CvROOT(cv) || CvXSUB(cv);
 
 #ifdef GV_UNIQUE_CHECK
         if (exists && GvUNIQUE(gv)) {
@@ -4288,7 +4287,7 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
                    || (CvCONST(cv)
                        && (!const_sv || sv_cmp(cv_const_sv(cv), const_sv))))
                {
-                   line_t oldline = CopLINE(PL_curcop);
+                   const line_t oldline = CopLINE(PL_curcop);
                    if (PL_copline != NOLINE)
                        CopLINE_set(PL_curcop, PL_copline);
                    Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
@@ -4391,7 +4390,7 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
        op_free(block);
        block = Nullop;
        if (name) {
-           char *s = strrchr(name, ':');
+           const char *s = strrchr(name, ':');
            s = s ? s+1 : name;
            if (strEQ(s, "BEGIN")) {
                const char not_safe[] =
@@ -4438,8 +4437,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
     }
 
     if (name || aname) {
-       char *s;
-       char *tname = (name ? name : aname);
+       const char *s;
+       const char *tname = (name ? name : aname);
 
        if (PERLDB_SUBLINE && PL_curstash != PL_debstash) {
            SV *sv = NEWSV(0,0);
@@ -4474,7 +4473,7 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
            goto done;
 
        if (strEQ(s, "BEGIN") && !PL_error_count) {
-           I32 oldscope = PL_scopestack_ix;
+           const I32 oldscope = PL_scopestack_ix;
            ENTER;
            SAVECOPFILE(&PL_compiling);
            SAVECOPLINE(&PL_compiling);
@@ -4597,7 +4596,7 @@ Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename)
            /* already defined (or promised) */
            if (ckWARN(WARN_REDEFINE) && !(CvGV(cv) && GvSTASH(CvGV(cv))
                            && strEQ(HvNAME(GvSTASH(CvGV(cv))), "autouse"))) {
-               line_t oldline = CopLINE(PL_curcop);
+               const line_t oldline = CopLINE(PL_curcop);
                if (PL_copline != NOLINE)
                    CopLINE_set(PL_curcop, PL_copline);
                Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
@@ -4695,7 +4694,7 @@ Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
     GvMULTI_on(gv);
     if ((cv = GvFORM(gv))) {
        if (ckWARN(WARN_REDEFINE)) {
-           line_t oldline = CopLINE(PL_curcop);
+           const line_t oldline = CopLINE(PL_curcop);
            if (PL_copline != NOLINE)
                CopLINE_set(PL_curcop, PL_copline);
            Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
@@ -4901,8 +4900,8 @@ Perl_ck_bitop(pTHX_ OP *o)
             || o->op_type == OP_BIT_AND
             || o->op_type == OP_BIT_XOR))
     {
-       OP * left = cBINOPo->op_first;
-       OP * right = left->op_sibling;
+       const OP * left = cBINOPo->op_first;
+       const OP * right = left->op_sibling;
        if ((OP_IS_NUMCOMPARE(left->op_type) &&
                (left->op_flags & OPf_PARENS) == 0) ||
            (OP_IS_NUMCOMPARE(right->op_type) &&
@@ -4920,7 +4919,7 @@ Perl_ck_bitop(pTHX_ OP *o)
 OP *
 Perl_ck_concat(pTHX_ OP *o)
 {
-    OP *kid = cUNOPo->op_first;
+    const OP *kid = cUNOPo->op_first;
     if (kid->op_type == OP_CONCAT && !(kid->op_private & OPpTARGET_MY) &&
            !(kUNOP->op_first->op_flags & OPf_MOD))
         o->op_flags |= OPf_STACKED;
@@ -4933,7 +4932,7 @@ Perl_ck_spair(pTHX_ OP *o)
     if (o->op_flags & OPf_KIDS) {
        OP* newop;
        OP* kid;
-       OPCODE type = o->op_type;
+       const OPCODE type = o->op_type;
        o = modkids(ck_fun(o), type);
        kid = cUNOPo->op_first;
        newop = kUNOP->op_first->op_sibling;
@@ -4992,7 +4991,7 @@ Perl_ck_die(pTHX_ OP *o)
 OP *
 Perl_ck_eof(pTHX_ OP *o)
 {
-    I32 type = o->op_type;
+    const I32 type = o->op_type;
 
     if (o->op_flags & OPf_KIDS) {
        if (cLISTOPo->op_first->op_type == OP_STUB) {
@@ -5066,8 +5065,8 @@ Perl_ck_exit(pTHX_ OP *o)
 OP *
 Perl_ck_exec(pTHX_ OP *o)
 {
-    OP *kid;
     if (o->op_flags & OPf_STACKED) {
+        OP *kid;
        o = ck_fun(o);
        kid = cUNOPo->op_first->op_sibling;
        if (kid->op_type == OP_RV2GV)
@@ -5213,7 +5212,7 @@ Perl_ck_rvconst(pTHX_ register OP *o)
 OP *
 Perl_ck_ftst(pTHX_ OP *o)
 {
-    I32 type = o->op_type;
+    const I32 type = o->op_type;
 
     if (o->op_flags & OPf_REF) {
        /* nothing */
@@ -5250,11 +5249,7 @@ Perl_ck_ftst(pTHX_ OP *o)
 OP *
 Perl_ck_fun(pTHX_ OP *o)
 {
-    register OP *kid;
-    OP **tokid;
-    OP *sibl;
-    I32 numargs = 0;
-    int type = o->op_type;
+    const int type = o->op_type;
     register I32 oa = PL_opargs[type] >> OASHIFT;
 
     if (o->op_flags & OPf_STACKED) {
@@ -5265,8 +5260,11 @@ Perl_ck_fun(pTHX_ OP *o)
     }
 
     if (o->op_flags & OPf_KIDS) {
-       tokid = &cLISTOPo->op_first;
-       kid = cLISTOPo->op_first;
+        OP **tokid = &cLISTOPo->op_first;
+        register OP *kid = cLISTOPo->op_first;
+        OP *sibl;
+        I32 numargs = 0;
+
        if (kid->op_type == OP_PUSHMARK ||
            (kid->op_type == OP_NULL && kid->op_targ == OP_PUSHMARK))
        {
@@ -5428,7 +5426,7 @@ Perl_ck_fun(pTHX_ OP *o)
                                      else if (op->op_type == OP_PADAV
                                               || op->op_type == OP_PADHV) {
                                           /* lexicalvar $a[] or $h{} */
-                                          char *padname =
+                                          const char *padname =
                                                PAD_COMPNAME_PV(op->op_targ);
                                           if (padname)
                                                tmpstr =
@@ -5555,7 +5553,7 @@ Perl_ck_grep(pTHX_ OP *o)
 {
     LOGOP *gwop;
     OP *kid;
-    OPCODE type = o->op_type == OP_GREPSTART ? OP_GREPWHILE : OP_MAPWHILE;
+    const OPCODE type = o->op_type == OP_GREPSTART ? OP_GREPWHILE : OP_MAPWHILE;
     I32 offset;
 
     o->op_ppaddr = PL_ppaddr[OP_GREPSTART];
@@ -5632,7 +5630,7 @@ Perl_ck_lengthconst(pTHX_ OP *o)
 OP *
 Perl_ck_lfun(pTHX_ OP *o)
 {
-    OPCODE type = o->op_type;
+    const OPCODE type = o->op_type;
     return modkids(ck_fun(o), type);
 }
 
@@ -5677,7 +5675,7 @@ Perl_ck_defined(pTHX_ OP *o)              /* 19990527 MJD */
 OP *
 Perl_ck_rfun(pTHX_ OP *o)
 {
-    OPCODE type = o->op_type;
+    const OPCODE type = o->op_type;
     return refkids(ck_fun(o), type);
 }
 
@@ -5758,7 +5756,7 @@ OP *
 Perl_ck_match(pTHX_ OP *o)
 {
     if (o->op_type != OP_QR) {
-       I32 offset = pad_findmy("$_");
+       const I32 offset = pad_findmy("$_");
        if (offset != NOT_IN_PAD && !(PAD_COMPNAME_FLAGS(offset) & SVpad_OUR)) {
            o->op_targ = offset;
            o->op_private |= OPpTARGET_MY;
@@ -5907,8 +5905,8 @@ Perl_ck_require(pTHX_ OP *o)
 OP *
 Perl_ck_return(pTHX_ OP *o)
 {
-    OP *kid;
     if (CvLVALUE(PL_compcv)) {
+        OP *kid;
        for (kid = cLISTOPo->op_first->op_sibling; kid; kid = kid->op_sibling)
            mod(kid, OP_LEAVESUBLV);
     }
@@ -5948,7 +5946,7 @@ Perl_ck_select(pTHX_ OP *o)
 OP *
 Perl_ck_shift(pTHX_ OP *o)
 {
-    I32 type = o->op_type;
+    const I32 type = o->op_type;
 
     if (!(o->op_flags & OPf_KIDS)) {
        OP *argop;
@@ -6152,11 +6150,10 @@ OP *
 Perl_ck_join(pTHX_ OP *o)
 {
     if (ckWARN(WARN_SYNTAX)) {
-       OP *kid = cLISTOPo->op_first->op_sibling;
+       const OP *kid = cLISTOPo->op_first->op_sibling;
        if (kid && kid->op_type == OP_MATCH) {
-           const char *pmstr = "STRING";
-           if (PM_GETRE(kPMOP))
-               pmstr = PM_GETRE(kPMOP)->precomp;
+            const REGEXP *re = PM_GETRE(kPMOP);
+           const char *pmstr = re ? re->precomp : "STRING";
            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
                        "/%s/ should probably be written as \"%s\"",
                        pmstr, pmstr);
@@ -6180,7 +6177,7 @@ Perl_ck_subr(pTHX_ OP *o)
     I32 contextclass = 0;
     char *e = 0;
     STRLEN n_a;
-    bool delete=0;
+    bool delete_op = 0;
 
     o->op_private |= OPpENTERSUB_HASTARG;
     for (cvop = o2; cvop->op_sibling; cvop = cvop->op_sibling) ;
@@ -6205,7 +6202,7 @@ Perl_ck_subr(pTHX_ OP *o)
                            o->op_private |= OPpENTERSUB_DB;
                    }
                    else {
-                       delete=1;
+                       delete_op = 1;
                        if (ckWARN(WARN_ASSERTIONS) && !(PL_hints & HINT_ASSERTIONSSEEN)) {
                            Perl_warner(aTHX_ packWARN(WARN_ASSERTIONS),
                                        "Impossible to activate assertion call");
@@ -6309,8 +6306,8 @@ Perl_ck_subr(pTHX_ OP *o)
                     break;
                case ']':
                     if (contextclass) {
-                        char *p = proto;
-                        char s = *p;
+                        char *p = proto;
+                        const char s = *p;
                         contextclass = 0;
                         *p = '\0';
                         while (*--p != '[');
@@ -6393,7 +6390,7 @@ Perl_ck_subr(pTHX_ OP *o)
     if (proto && !optional &&
          (*proto && *proto != '@' && *proto != '%' && *proto != ';'))
        return too_few_arguments(o, gv_ename(namegv));
-    if(delete) {
+    if(delete_op) {
        op_free(o);
        o=newSVOP(OP_CONST, 0, newSViv(0));
     }
@@ -6488,7 +6485,7 @@ Perl_peep(pTHX_ register OP *o)
             * Despite being a "constant", the SV is written to,
             * for reference counts, sv_upgrade() etc. */
            if (cSVOP->op_sv) {
-               PADOFFSET ix = pad_alloc(OP_CONST, SVs_PADTMP);
+               const PADOFFSET ix = pad_alloc(OP_CONST, SVs_PADTMP);
                if (o->op_type == OP_CONST && SvPADTMP(cSVOPo->op_sv)) {
                    /* If op_sv is already a PADTMP then it is being used by
                     * some pad, so make a copy. */
@@ -6683,7 +6680,7 @@ Perl_peep(pTHX_ register OP *o)
                        o->op_next->op_sibling->op_type != OP_EXIT &&
                        o->op_next->op_sibling->op_type != OP_WARN &&
                        o->op_next->op_sibling->op_type != OP_DIE) {
-                   line_t oldline = CopLINE(PL_curcop);
+                   const line_t oldline = CopLINE(PL_curcop);
 
                    CopLINE_set(PL_curcop, CopLINE((COP*)o->op_next));
                    Perl_warner(aTHX_ packWARN(WARN_EXEC),