This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In Perl_load_module_nocontext(), ver can actually be NULL.
[perl5.git] / proto.h
diff --git a/proto.h b/proto.h
index 1aec27a..d7caaf1 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -93,7 +93,7 @@ PERL_CALLCONV MEM_SIZE        Perl_malloced_size(void *p)
 PERL_CALLCONV void*    Perl_get_context(void)
                        __attribute__warn_unused_result__;
 
-PERL_CALLCONV void     Perl_set_context(void *thx)
+PERL_CALLCONV void     Perl_set_context(void *t)
                        __attribute__nonnull__(1);
 
 
@@ -189,6 +189,14 @@ PERL_CALLCONV void Perl_av_unshift(pTHX_ AV* ar, I32 num)
 PERL_CALLCONV SV**     Perl_av_arylen_p(pTHX_ AV* av)
                        __attribute__nonnull__(pTHX_1);
 
+PERL_CALLCONV IV*      Perl_av_iter_p(pTHX_ AV* av)
+                       __attribute__nonnull__(pTHX_1);
+
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
+STATIC MAGIC*  S_get_aux_mg(pTHX_ AV *av)
+                       __attribute__nonnull__(pTHX_1);
+
+#endif
 PERL_CALLCONV OP*      Perl_bind_match(pTHX_ I32 type, OP* left, OP* pat)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2)
@@ -238,8 +246,7 @@ PERL_CALLCONV void  Perl_croak(pTHX_ const char* pat, ...)
                        __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
 
 PERL_CALLCONV void     Perl_vcroak(pTHX_ const char* pat, va_list* args)
-                       __attribute__noreturn__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__noreturn__;
 
 #if defined(PERL_IMPLICIT_CONTEXT)
 PERL_CALLCONV void     Perl_croak_nocontext(const char* pat, ...)
@@ -260,8 +267,7 @@ PERL_CALLCONV char* Perl_form_nocontext(const char* pat, ...)
                        __attribute__nonnull__(1);
 
 PERL_CALLCONV void     Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...)
-                       __attribute__nonnull__(2)
-                       __attribute__nonnull__(3);
+                       __attribute__nonnull__(2);
 
 PERL_CALLCONV SV*      Perl_mess_nocontext(const char* pat, ...)
                        __attribute__format__(__printf__,1,2)
@@ -386,10 +392,10 @@ PERL_CALLCONV char*       Perl_delimcpy(pTHX_ char* to, const char* toend, const char*
                        __attribute__nonnull__(pTHX_6);
 
 PERL_CALLCONV void     Perl_delete_eval_scope(pTHX);
-PERL_CALLCONV void     Perl_deprecate(pTHX_ const char* s)
+PERL_CALLCONV void     Perl_deprecate(pTHX_ const char *const s)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_deprecate_old(pTHX_ const char* s)
+PERL_CALLCONV void     Perl_deprecate_old(pTHX_ const char *const s)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV OP*      Perl_die(pTHX_ const char* pat, ...)
@@ -565,7 +571,7 @@ PERL_CALLCONV void  Perl_dump_sub(pTHX_ const GV* gv)
 PERL_CALLCONV void     Perl_fbm_compile(pTHX_ SV* sv, U32 flags)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV char*    Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)
+PERL_CALLCONV char*    Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlestr, U32 flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -588,7 +594,7 @@ PERL_CALLCONV char* Perl_vform(pTHX_ const char* pat, va_list* args)
 PERL_CALLCONV void     Perl_free_tmps(pTHX);
 PERL_CALLCONV OP*      Perl_gen_constant_list(pTHX_ OP* o);
 #if !defined(HAS_GETENV_LEN)
-PERL_CALLCONV char*    Perl_getenv_len(pTHX_ const char* key, unsigned long *len)
+PERL_CALLCONV char*    Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
@@ -676,11 +682,11 @@ PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags)
 PERL_CALLCONV HV*      Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV HV*      Perl_gv_stashsv(pTHX_ SV* sv, I32 flags);
-PERL_CALLCONV void     Perl_hv_clear(pTHX_ HV* tb);
-PERL_CALLCONV HV *     Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
+PERL_CALLCONV HV*      Perl_gv_stashsv(pTHX_ SV* sv, I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
+PERL_CALLCONV void     Perl_hv_clear(pTHX_ HV* tb);
+PERL_CALLCONV HV *     Perl_hv_copy_hints_hv(pTHX_ HV *const ohv);
 PERL_CALLCONV void     Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry)
                        __attribute__nonnull__(pTHX_1);
 
@@ -1049,7 +1055,7 @@ PERL_CALLCONV void        Perl_vload_module(pTHX_ U32 flags, SV* name, SV* ver, va_list
 PERL_CALLCONV OP*      Perl_localize(pTHX_ OP* arg, I32 lexical)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV I32      Perl_looks_like_number(pTHX_ SV* sv)
+PERL_CALLCONV I32      Perl_looks_like_number(pTHX_ SV *const sv)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 
@@ -1088,19 +1094,19 @@ PERL_CALLCONV int       Perl_magic_clearhint(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV int      Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int      Perl_magic_clearisa(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV int      Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int      Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV int      Perl_magic_existspack(pTHX_ SV* sv, const MAGIC* mg)
+PERL_CALLCONV int      Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV int      Perl_magic_freeregexp(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int      Perl_magic_existspack(pTHX_ SV* sv, const MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
@@ -1190,10 +1196,6 @@ PERL_CALLCONV int        Perl_magic_freearylen_p(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV int      Perl_magic_setbm(pTHX_ SV* sv, MAGIC* mg)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-
 PERL_CALLCONV int      Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -1206,10 +1208,6 @@ PERL_CALLCONV int        Perl_magic_setenv(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV int      Perl_magic_setfm(pTHX_ SV* sv, MAGIC* mg)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-
 PERL_CALLCONV int      Perl_magic_sethint(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -1218,12 +1216,6 @@ PERL_CALLCONV int        Perl_magic_setisa(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-#ifndef NO_MATHOMS
-PERL_CALLCONV int      Perl_magic_setglob(pTHX_ SV* sv, MAGIC* mg)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-
-#endif
 PERL_CALLCONV int      Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -1305,11 +1297,9 @@ PERL_CALLCONV void       Perl_qerror(pTHX_ SV* err)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp)
-                       __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV void     Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
-                       __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV int      Perl_mg_clear(pTHX_ SV* sv)
@@ -1344,7 +1334,7 @@ PERL_CALLCONV int Perl_mg_set(pTHX_ SV* sv)
 PERL_CALLCONV I32      Perl_mg_size(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_mini_mktime(pTHX_ struct tm *pm)
+PERL_CALLCONV void     Perl_mini_mktime(pTHX_ struct tm *ptm)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV OP*      Perl_mod(pTHX_ OP* o, I32 type);
@@ -1397,7 +1387,7 @@ PERL_CALLCONV PerlIO*     Perl_my_popen(pTHX_ const char* cmd, const char* mode)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV PerlIO*  Perl_my_popen_list(pTHX_ char* mode, int n, SV ** args)
+PERL_CALLCONV PerlIO*  Perl_my_popen_list(pTHX_ const char* mode, int n, SV ** args)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3);
 
@@ -1617,6 +1607,10 @@ PERL_CALLCONV SV*        Perl_newSVpvn(pTHX_ const char* s, STRLEN len)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
 
+PERL_CALLCONV SV*      Perl_newSVpvn_flags(pTHX_ const char* s, STRLEN len, U32 flags)
+                       __attribute__malloc__
+                       __attribute__warn_unused_result__;
+
 PERL_CALLCONV SV*      Perl_newSVhek(pTHX_ const HEK *hek)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
@@ -1664,12 +1658,12 @@ PERL_CALLCONV PERL_SI*  Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
 
-PERL_CALLCONV char*    Perl_scan_vstring(pTHX_ const char *vstr, const char *end, SV *sv)
+PERL_CALLCONV char*    Perl_scan_vstring(pTHX_ const char *vstr, const char *const end, SV *sv)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
 
-PERL_CALLCONV const char*      Perl_scan_version(pTHX_ const char *vstr, SV *sv, bool qv)
+PERL_CALLCONV const char*      Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
@@ -1691,7 +1685,7 @@ PERL_CALLCONV SV* Perl_vnormal(pTHX_ SV *vs)
 PERL_CALLCONV SV*      Perl_vstringify(pTHX_ SV *vs)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV int      Perl_vcmp(pTHX_ SV *lvs, SV *rvs)
+PERL_CALLCONV int      Perl_vcmp(pTHX_ SV *lhv, SV *rhv)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
@@ -1765,7 +1759,7 @@ PERL_CALLCONV I32 Perl_call_method(pTHX_ const char* methname, I32 flags)
 PERL_CALLCONV I32      Perl_call_pv(pTHX_ const char* sub_name, I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV I32      Perl_call_sv(pTHX_ SV* sv, I32 flags)
+PERL_CALLCONV I32      Perl_call_sv(pTHX_ SV* sv, VOL I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_despatch_signals(pTHX);
@@ -1857,12 +1851,14 @@ PERL_CALLCONV I32       Perl_pregexec(pTHX_ REGEXP * const prog, char* stringarg, char
                        __attribute__nonnull__(pTHX_4)
                        __attribute__nonnull__(pTHX_6);
 
-PERL_CALLCONV void     Perl_pregfree(pTHX_ struct regexp* r);
-PERL_CALLCONV struct regexp*   Perl_reg_temp_copy(pTHX_ struct regexp* r)
+PERL_CALLCONV void     Perl_pregfree(pTHX_ REGEXP* r);
+PERL_CALLCONV void     Perl_pregfree2(pTHX_ REGEXP* prog)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_regfree_internal(pTHX_ REGEXP * const r);
-PERL_CALLCONV char *   Perl_reg_stringify(pTHX_ MAGIC *mg, STRLEN *lp, U32 *flags, I32 *haseval)
+PERL_CALLCONV REGEXP*  Perl_reg_temp_copy(pTHX_ REGEXP* r)
+                       __attribute__nonnull__(pTHX_1);
+
+PERL_CALLCONV void     Perl_regfree_internal(pTHX_ REGEXP * const rx)
                        __attribute__nonnull__(pTHX_1);
 
 #if defined(USE_ITHREADS)
@@ -1874,7 +1870,7 @@ PERL_CALLCONV void*       Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS*
 PERL_CALLCONV REGEXP*  Perl_pregcomp(pTHX_ const SV * const pattern, const U32 flags)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV REGEXP*  Perl_re_compile(pTHX_ const SV * const pattern, const U32 flags)
+PERL_CALLCONV REGEXP*  Perl_re_compile(pTHX_ const SV * const pattern, U32 flags)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV char*    Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV* sv, char* strpos, char* strend, const U32 flags, re_scream_pos_data *data)
@@ -1893,8 +1889,7 @@ PERL_CALLCONV I32 Perl_regexec_flags(pTHX_ REGEXP * const rx, char* stringarg, c
                        __attribute__nonnull__(pTHX_6);
 
 PERL_CALLCONV regnode* Perl_regnext(pTHX_ regnode* p)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__warn_unused_result__;
 
 
 PERL_CALLCONV SV*      Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags)
@@ -1956,7 +1951,7 @@ PERL_CALLCONV char*       Perl_rninstr(pTHX_ const char* big, const char* bigend, cons
 
 PERL_CALLCONV Sighandler_t     Perl_rsignal(pTHX_ int i, Sighandler_t t);
 PERL_CALLCONV int      Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t);
-PERL_CALLCONV int      Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* t2)
+PERL_CALLCONV int      Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* save)
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV Sighandler_t     Perl_rsignal_state(pTHX_ int i);
@@ -2079,7 +2074,9 @@ PERL_CALLCONV void        Perl_save_long(pTHX_ long* longp)
 PERL_CALLCONV void     Perl_save_mortalizesv(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_save_nogv(pTHX_ GV* gv);
+PERL_CALLCONV void     Perl_save_nogv(pTHX_ GV* gv)
+                       __attribute__nonnull__(pTHX_1);
+
 PERL_CALLCONV void     Perl_save_op(pTHX);
 PERL_CALLCONV SV*      Perl_save_scalar(pTHX_ GV* gv)
                        __attribute__nonnull__(pTHX_1);
@@ -2091,7 +2088,7 @@ PERL_CALLCONV void        Perl_save_vptr(pTHX_ void* pptr)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_save_re_context(pTHX);
-PERL_CALLCONV void     Perl_save_padsv(pTHX_ PADOFFSET off);
+PERL_CALLCONV void     Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
 PERL_CALLCONV void     Perl_save_sptr(pTHX_ SV** sptr)
                        __attribute__nonnull__(pTHX_1);
 
@@ -2122,7 +2119,7 @@ PERL_CALLCONV NV  Perl_scan_oct(pTHX_ const char* start, STRLEN len, STRLEN* retl
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV OP*      Perl_scope(pTHX_ OP* o);
-PERL_CALLCONV char*    Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *oldposp, I32 last)
+PERL_CALLCONV char*    Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_5);
@@ -2169,40 +2166,26 @@ STATIC char*    S_glob_2pv(pTHX_ GV* const gv, STRLEN * const len)
                        __attribute__nonnull__(pTHX_1);
 
 #endif
-/* PERL_CALLCONV IV    Perl_sv_2iv(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV IV       Perl_sv_2iv_flags(pTHX_ SV* sv, I32 flags)
-                       __attribute__nonnull__(pTHX_1);
-
+/* PERL_CALLCONV IV    Perl_sv_2iv(pTHX_ SV *sv); */
+PERL_CALLCONV IV       Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags);
 PERL_CALLCONV SV*      Perl_sv_2mortal(pTHX_ SV* sv);
-PERL_CALLCONV NV       Perl_sv_2nv(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1);
-
-PERL_CALLCONV SV*      Perl_sv_2num(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1);
-
-/* PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV* sv, STRLEN* lp)
-                       __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags)
+PERL_CALLCONV NV       Perl_sv_2nv(pTHX_ SV *const sv);
+PERL_CALLCONV SV*      Perl_sv_2num(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
+/* PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp); */
+PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
 PERL_CALLCONV char*    Perl_sv_2pvutf8(pTHX_ SV* sv, STRLEN* lp)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV char*    Perl_sv_2pvbyte(pTHX_ SV* sv, STRLEN* lp)
+PERL_CALLCONV char*    Perl_sv_2pvbyte(pTHX_ SV *const sv, STRLEN *const lp)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV char*    Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
                        __attribute__nonnull__(pTHX_1);
 
-/* PERL_CALLCONV UV    Perl_sv_2uv(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV UV       Perl_sv_2uv_flags(pTHX_ SV* sv, I32 flags)
-                       __attribute__nonnull__(pTHX_1);
-
+/* PERL_CALLCONV UV    Perl_sv_2uv(pTHX_ SV *sv); */
+PERL_CALLCONV UV       Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags);
 PERL_CALLCONV IV       Perl_sv_iv(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
@@ -2225,10 +2208,10 @@ PERL_CALLCONV char*     Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *len)
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV I32      Perl_sv_true(pTHX_ SV *sv);
-PERL_CALLCONV void     Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags)
+PERL_CALLCONV void     Perl_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV int      Perl_sv_backoff(pTHX_ SV* sv)
+PERL_CALLCONV int      Perl_sv_backoff(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV SV*      Perl_sv_bless(pTHX_ SV* sv, HV* stash)
@@ -2245,8 +2228,7 @@ PERL_CALLCONV void        Perl_sv_vcatpvf(pTHX_ SV* sv, const char* pat, va_list* args)
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV void     Perl_sv_catpv(pTHX_ SV* sv, const char* ptr)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(pTHX_1);
 
 /* PERL_CALLCONV void  Perl_sv_catpvn(pTHX_ SV* sv, const char* ptr, STRLEN len)
                        __attribute__nonnull__(pTHX_1)
@@ -2263,14 +2245,8 @@ PERL_CALLCONV void       Perl_sv_clean_objs(pTHX);
 PERL_CALLCONV void     Perl_sv_clear(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV I32      Perl_sv_cmp(pTHX_ SV* sv1, SV* sv2)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-
-PERL_CALLCONV I32      Perl_sv_cmp_locale(pTHX_ SV* sv1, SV* sv2)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-
+PERL_CALLCONV I32      Perl_sv_cmp(pTHX_ SV* sv1, SV* sv2);
+PERL_CALLCONV I32      Perl_sv_cmp_locale(pTHX_ SV* sv1, SV* sv2);
 #if defined(USE_LOCALE_COLLATE)
 PERL_CALLCONV char*    Perl_sv_collxfrm(pTHX_ SV* sv, STRLEN* nxp)
                        __attribute__nonnull__(pTHX_1)
@@ -2286,18 +2262,16 @@ PERL_CALLCONV OP*       Perl_sv_compile_2op(pTHX_ SV* sv, OP** startp, const char* cod
 PERL_CALLCONV int      Perl_getcwd_sv(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_dec(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1);
-
+PERL_CALLCONV void     Perl_sv_dec(pTHX_ SV* sv);
 PERL_CALLCONV void     Perl_sv_dump(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV bool     Perl_sv_derived_from(pTHX_ SV* sv, const char* name)
+PERL_CALLCONV bool     Perl_sv_derived_from(pTHX_ SV* sv, const char *const name)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV bool     Perl_sv_does(pTHX_ SV* sv, const char* name)
+PERL_CALLCONV bool     Perl_sv_does(pTHX_ SV* sv, const char *const name)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -2312,12 +2286,10 @@ PERL_CALLCONV char*     Perl_sv_gets(pTHX_ SV* sv, PerlIO* fp, I32 append)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV char*    Perl_sv_grow(pTHX_ SV* sv, STRLEN newlen)
-                       __attribute__nonnull__(pTHX_1);
-
-PERL_CALLCONV void     Perl_sv_inc(pTHX_ SV* sv)
+PERL_CALLCONV char*    Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen)
                        __attribute__nonnull__(pTHX_1);
 
+PERL_CALLCONV void     Perl_sv_inc(pTHX_ SV* sv);
 PERL_CALLCONV void     Perl_sv_insert(pTHX_ SV* bigsv, STRLEN offset, STRLEN len, const char* little, STRLEN littlelen)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_4);
@@ -2390,16 +2362,16 @@ PERL_CALLCONV void      Perl_sv_vsetpvf(pTHX_ SV* sv, const char* pat, va_list* args)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV void     Perl_sv_setiv(pTHX_ SV* sv, IV num)
+PERL_CALLCONV void     Perl_sv_setiv(pTHX_ SV *const sv, const IV num)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_sv_setpviv(pTHX_ SV* sv, IV num)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_setuv(pTHX_ SV* sv, UV num)
+PERL_CALLCONV void     Perl_sv_setuv(pTHX_ SV *const sv, const UV num)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_setnv(pTHX_ SV* sv, NV num)
+PERL_CALLCONV void     Perl_sv_setnv(pTHX_ SV *const sv, const NV num)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV SV*      Perl_sv_setref_iv(pTHX_ SV* rv, const char* classname, IV iv)
@@ -2446,7 +2418,7 @@ PERL_CALLCONV void        Perl_sv_unref_flags(pTHX_ SV* sv, U32 flags)
 PERL_CALLCONV void     Perl_sv_untaint(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_upgrade(pTHX_ SV* sv, svtype new_type)
+PERL_CALLCONV void     Perl_sv_upgrade(pTHX_ SV *const sv, svtype new_type)
                        __attribute__nonnull__(pTHX_1);
 
 /* PERL_CALLCONV void  Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len)
@@ -2477,7 +2449,7 @@ PERL_CALLCONV UV  Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8)
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV void     Perl_taint_env(pTHX);
-PERL_CALLCONV void     Perl_taint_proper(pTHX_ const char* f, const char* s)
+PERL_CALLCONV void     Perl_taint_proper(pTHX_ const char* f, const char *const s)
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV UV       Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special)
@@ -2660,15 +2632,15 @@ PERL_CALLCONV I32       Perl_whichsig(pTHX_ const char* sig)
 PERL_CALLCONV void     Perl_write_to_stderr(pTHX_ const char* message, int msglen)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV int      Perl_yyerror(pTHX_ const char* s)
+PERL_CALLCONV int      Perl_yyerror(pTHX_ const char *const s)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV int      Perl_yylex(pTHX);
 PERL_CALLCONV int      Perl_yyparse(pTHX);
-PERL_CALLCONV void     Perl_parser_free(pTHX_ const yy_parser *)
+PERL_CALLCONV void     Perl_parser_free(pTHX_ const yy_parser *parser)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV int      Perl_yywarn(pTHX_ const char* s)
+PERL_CALLCONV int      Perl_yywarn(pTHX_ const char *const s)
                        __attribute__nonnull__(pTHX_1);
 
 #if defined(MYMALLOC)
@@ -2711,8 +2683,7 @@ PERL_CALLCONV void        Perl_sv_vcatpvf_mg(pTHX_ SV* sv, const char* pat, va_list* ar
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV void     Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(pTHX_1);
 
 /* PERL_CALLCONV void  Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len)
                        __attribute__nonnull__(pTHX_1)
@@ -2730,16 +2701,16 @@ PERL_CALLCONV void      Perl_sv_vsetpvf_mg(pTHX_ SV* sv, const char* pat, va_list* ar
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV void     Perl_sv_setiv_mg(pTHX_ SV *sv, IV i)
+PERL_CALLCONV void     Perl_sv_setiv_mg(pTHX_ SV *const sv, const IV i)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_setuv_mg(pTHX_ SV *sv, UV u)
+PERL_CALLCONV void     Perl_sv_setuv_mg(pTHX_ SV *const sv, const UV u)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_setnv_mg(pTHX_ SV *sv, NV num)
+PERL_CALLCONV void     Perl_sv_setnv_mg(pTHX_ SV *const sv, const NV num)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr)
@@ -2898,9 +2869,10 @@ PERL_CALLCONV HEK*       Perl_hek_dup(pTHX_ HEK* e, CLONE_PARAMS* param)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV REGEXP*  Perl_re_dup(pTHX_ const REGEXP* r, CLONE_PARAMS* param)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_2);
+PERL_CALLCONV void     Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS* param)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV PerlIO*  Perl_fp_dup(pTHX_ PerlIO* fp, char type, CLONE_PARAMS* param)
                        __attribute__nonnull__(pTHX_3);
@@ -2926,7 +2898,6 @@ PERL_CALLCONV void        Perl_rvpv_dup(pTHX_ SV* dstr, const SV *sstr, CLONE_PARAMS* p
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV yy_parser*       Perl_parser_dup(pTHX_ const yy_parser *proto, CLONE_PARAMS* param)
-                       __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
 #endif
@@ -2936,8 +2907,7 @@ PERL_CALLCONV PTR_TBL_t*  Perl_ptr_table_new(pTHX)
 
 PERL_CALLCONV void*    Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, const void *sv)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void     Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, const void *oldsv, void *newsv)
                        __attribute__nonnull__(pTHX_1)
@@ -3024,7 +2994,7 @@ STATIC HV*        S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const
 
 #endif
 
-PERL_CALLCONV void*    Perl_get_arena(pTHX_ size_t svtype, U32 misc)
+PERL_CALLCONV void*    Perl_get_arena(pTHX_ const size_t svtype, const U32 misc)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
 
@@ -3086,9 +3056,7 @@ STATIC int        S_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, const char *meth, I32
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
 
-STATIC void    S_restore_magic(pTHX_ const void *p)
-                       __attribute__nonnull__(pTHX_1);
-
+STATIC void    S_restore_magic(pTHX_ const void *p);
 STATIC void    S_unwind_handler_stack(pTHX_ const void *p)
                        __attribute__nonnull__(pTHX_1);
 
@@ -3204,10 +3172,6 @@ PERL_CALLCONV OP*        Perl_ck_require(pTHX_ OP *o)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV OP*      Perl_ck_retarget(pTHX_ OP *o)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
-
 PERL_CALLCONV OP*      Perl_ck_return(pTHX_ OP *o)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
@@ -3264,6 +3228,10 @@ PERL_CALLCONV OP*        Perl_ck_unpack(pTHX_ OP *o)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 
+PERL_CALLCONV OP*      Perl_ck_each(pTHX_ OP *o)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+
 STATIC bool    S_is_handle_constructor(const OP *o, I32 numargs)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(1);
@@ -3385,7 +3353,7 @@ STATIC void       S_find_beginning(pTHX_ SV* linestr_sv, PerlIO *rsfp)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-STATIC void    S_forbid_setid(pTHX_ const char flag, const int suidscript);
+STATIC void    S_forbid_setid(pTHX_ const char flag, const bool suidscript);
 STATIC void    S_incpush(pTHX_ const char *dir, bool addsubdirs, bool addoldvers, bool usesep, bool canrelocate);
 STATIC void    S_init_interp(pTHX);
 STATIC void    S_init_ids(pTHX);
@@ -3399,21 +3367,36 @@ STATIC void     S_my_exit_jump(pTHX)
                        __attribute__noreturn__;
 
 STATIC void    S_nuke_stacks(pTHX);
-STATIC int     S_open_script(pTHX_ const char *scriptname, bool dosearch, SV *sv, int *suidscript, PerlIO **rsfpp)
+STATIC int     S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript, PerlIO **rsfpp)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3)
-                       __attribute__nonnull__(pTHX_4)
-                       __attribute__nonnull__(pTHX_5);
+                       __attribute__nonnull__(pTHX_4);
 
 STATIC void    S_usage(pTHX_ const char *name)
                        __attribute__nonnull__(pTHX_1);
 
-STATIC void    S_validate_suid(pTHX_ const char *validarg, const char *scriptname, int fdscript, int suidscript, SV* linestr_sv, PerlIO *rsfp)
+#ifdef DOSUID
+#  ifdef IAMSUID
+STATIC void    S_validate_suid(pTHX_ const char *validarg, int fdscript, bool suidscript, SV* linestr_sv, PerlIO *rsfp)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_4)
+                       __attribute__nonnull__(pTHX_5);
+
+#  else
+STATIC void    S_validate_suid(pTHX_ const char *validarg, const char *scriptname, int fdscript, SV* linestr_sv, PerlIO *rsfp)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_5)
-                       __attribute__nonnull__(pTHX_6);
+                       __attribute__nonnull__(pTHX_4)
+                       __attribute__nonnull__(pTHX_5);
 
+#  endif
+#else
+#  ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
+STATIC void    S_validate_suid(pTHX_ PerlIO *rsfp)
+                       __attribute__nonnull__(pTHX_1);
+
+#  endif
+#endif
 
 #  if defined(IAMSUID)
 STATIC int     S_fd_on_nosuid_fs(pTHX_ int fd);
@@ -3560,7 +3543,7 @@ STATIC I32        S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
-STATIC PMOP*   S_make_matcher(pTHX_ regexp* re)
+STATIC PMOP*   S_make_matcher(pTHX_ REGEXP* re)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 
@@ -3625,7 +3608,6 @@ STATIC I32        S_sortcv_stacked(pTHX_ SV *a, SV *b)
                        __attribute__nonnull__(pTHX_2);
 
 STATIC void    S_qsortsvu(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t compare)
-                       __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3);
 
 #endif
@@ -3671,7 +3653,7 @@ STATIC STRLEN     S_reguni(pTHX_ const struct RExC_state_t *state, UV uv, char *s)
 STATIC regnode*        S_regclass(pTHX_ struct RExC_state_t *state, U32 depth)
                        __attribute__nonnull__(pTHX_1);
 
-STATIC I32     S_regcurly(const char *)
+STATIC I32     S_regcurly(const char *s)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(1);
 
@@ -3884,7 +3866,7 @@ STATIC void       S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, con
                        __attribute__nonnull__(pTHX_4)
                        __attribute__nonnull__(pTHX_5);
 
-STATIC void    S_debug_start_match(pTHX_ const regexp *prog, const bool do_utf8, const char *start, const char *end, const char *blurb)
+STATIC void    S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3)
                        __attribute__nonnull__(pTHX_4)
@@ -3927,7 +3909,7 @@ PERL_CALLCONV int Perl_sv_kill_backrefs(pTHX_ SV *sv, AV *av)
 #endif
 
 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-STATIC char *  S_uiv_2buf(char *buf, IV iv, UV uv, int is_uv, char **peob)
+STATIC char *  S_uiv_2buf(char *const buf, const IV iv, UV uv, const int is_uv, char **const peob)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(1)
                        __attribute__nonnull__(5);
@@ -3935,10 +3917,10 @@ STATIC char *   S_uiv_2buf(char *buf, IV iv, UV uv, int is_uv, char **peob)
 STATIC void    S_sv_unglob(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);
 
-STATIC void    S_not_a_number(pTHX_ SV *sv)
+STATIC void    S_not_a_number(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
-STATIC I32     S_visit(pTHX_ SVFUNC_t f, U32 flags, U32 mask)
+STATIC I32     S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask)
                        __attribute__nonnull__(pTHX_1);
 
 STATIC void    S_sv_del_backref(pTHX_ SV *target, SV *ref)
@@ -3954,9 +3936,15 @@ STATIC void      S_del_sv(pTHX_ SV *p)
 
 #  endif
 #  if !defined(NV_PRESERVES_UV)
-STATIC int     S_sv_2iuv_non_preserve(pTHX_ SV *sv, I32 numtype)
+#    ifdef DEBUGGING
+STATIC int     S_sv_2iuv_non_preserve(pTHX_ SV *const sv, I32 numtype)
+                       __attribute__nonnull__(pTHX_1);
+
+#    else
+STATIC int     S_sv_2iuv_non_preserve(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
+#    endif
 #  endif
 STATIC I32     S_expect_number(pTHX_ char** pattern)
                        __attribute__warn_unused_result__
@@ -3998,8 +3986,8 @@ STATIC void       S_sv_release_COW(pTHX_ SV *sv, const char *pvx, SV *after)
 
 #  endif
 STATIC SV *    S_more_sv(pTHX);
-STATIC void *  S_more_bodies(pTHX_ svtype sv_type);
-STATIC bool    S_sv_2iuv_common(pTHX_ SV *sv)
+STATIC void *  S_more_bodies(pTHX_ const svtype sv_type);
+STATIC bool    S_sv_2iuv_common(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
 STATIC void    S_glob_assign_glob(pTHX_ SV *dstr, SV *sstr, const int dtype)
@@ -4012,8 +4000,7 @@ STATIC void       S_glob_assign_ref(pTHX_ SV *dstr, SV *sstr)
 
 STATIC PTR_TBL_ENT_t * S_ptr_table_find(PTR_TBL_t *tbl, const void *sv)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(1)
-                       __attribute__nonnull__(2);
+                       __attribute__nonnull__(1);
 
 #endif
 
@@ -4072,7 +4059,7 @@ STATIC char*      S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_pa
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_5);
 
-STATIC void    S_update_debugger_info(pTHX_ SV *orig_sv, const char *buf, STRLEN len);
+STATIC void    S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len);
 STATIC char*   S_skipspace(pTHX_ char *s)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
@@ -4086,7 +4073,7 @@ STATIC void       S_checkcomma(pTHX_ const char *s, const char *name, const char *what
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
 
-STATIC bool    S_feature_is_enabled(pTHX_ const char* name, STRLEN namelen)
+STATIC bool    S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen)
                        __attribute__nonnull__(pTHX_1);
 
 STATIC void    S_force_ident(pTHX_ const char *s, int kind)
@@ -4107,7 +4094,7 @@ STATIC I32        S_lop(pTHX_ I32 f, int x, char *s)
 STATIC void    S_missingterm(pTHX_ char *s)
                        __attribute__noreturn__;
 
-STATIC void    S_no_op(pTHX_ const char *what, char *s)
+STATIC void    S_no_op(pTHX_ const char *const what, char *s)
                        __attribute__nonnull__(pTHX_1);
 
 STATIC I32     S_sublex_done(pTHX)
@@ -4144,8 +4131,10 @@ STATIC void      S_strip_return(pTHX_ SV *sv)
 
 #  endif
 #  if defined(DEBUGGING)
-STATIC int     S_tokereport(pTHX_ I32 rv);
-STATIC void    S_printbuf(pTHX_ const char* fmt, const char* s)
+STATIC int     S_tokereport(pTHX_ I32 rv, const YYSTYPE* lvalp)
+                       __attribute__nonnull__(pTHX_2);
+
+STATIC void    S_printbuf(pTHX_ const char *const fmt, const char *const s)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
@@ -4217,7 +4206,7 @@ PERL_CALLCONV STRLEN      Perl_sv_utf8_upgrade_flags(pTHX_ SV *sv, I32 flags)
 PERL_CALLCONV char*    Perl_sv_pvn_force_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void     Perl_sv_copypv(pTHX_ SV* dsv, SV* ssv)
+PERL_CALLCONV void     Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
@@ -4245,9 +4234,7 @@ PERL_CALLCONV int Perl_PerlIO_error(pTHX_ PerlIO *f);
 PERL_CALLCONV int      Perl_PerlIO_flush(pTHX_ PerlIO *f);
 PERL_CALLCONV void     Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
 PERL_CALLCONV void     Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, int cnt);
-PERL_CALLCONV void     Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, int cnt)
-                       __attribute__nonnull__(pTHX_2);
-
+PERL_CALLCONV void     Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, int cnt);
 PERL_CALLCONV void     Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
 PERL_CALLCONV SSize_t  Perl_PerlIO_read(pTHX_ PerlIO *f, void *buf, Size_t count)
                        __attribute__nonnull__(pTHX_2);
@@ -4352,7 +4339,9 @@ PERL_CALLCONV int Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
                        __attribute__nonnull__(pTHX_1);
 
 #endif
-PERL_CALLCONV void     Perl_save_set_svflags(pTHX_ SV* sv, U32 mask, U32 val);
+PERL_CALLCONV void     Perl_save_set_svflags(pTHX_ SV* sv, U32 mask, U32 val)
+                       __attribute__nonnull__(pTHX_1);
+
 PERL_CALLCONV void     Perl_hv_assert(pTHX_ HV* tb)
                        __attribute__nonnull__(pTHX_1);
 
@@ -4505,7 +4494,7 @@ PERL_CALLCONV bool        Perl_is_gv_magical_sv(pTHX_ SV *name, U32 flags)
                        __attribute__nonnull__(pTHX_1);
 
 
-PERL_CALLCONV bool     Perl_stashpv_hvname_match(pTHX_ const COP *cop, const HV *hv)
+PERL_CALLCONV bool     Perl_stashpv_hvname_match(pTHX_ const COP *c, const HV *hv)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -4530,7 +4519,7 @@ PERL_CALLCONV STRLEN *    Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const ch
                        __attribute__nonnull__(pTHX_2);
 
 
-PERL_CALLCONV void     Perl_offer_nice_chunk(pTHX_ void *chunk, U32 chunk_size)
+PERL_CALLCONV void     Perl_offer_nice_chunk(pTHX_ void *const chunk, const U32 chunk_size)
                        __attribute__nonnull__(pTHX_1);