[perl #49472] Attributes + Unkown Error
[p5sagit/p5-mst-13.2.git] / proto.h
diff --git a/proto.h b/proto.h
index 1aec27a..35e8ae2 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -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)
@@ -386,10 +394,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, ...)
@@ -1049,7 +1057,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 +1096,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 +1198,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 +1210,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 +1218,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);
@@ -1397,7 +1391,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 +1611,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,7 +1662,7 @@ 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);
@@ -1765,7 +1763,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,14 +1855,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 r);
 #if defined(USE_ITHREADS)
 PERL_CALLCONV void*    Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS* param)
                        __attribute__nonnull__(pTHX_1)
@@ -1874,7 +1872,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)
@@ -2091,7 +2089,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);
 
@@ -2172,26 +2170,26 @@ STATIC char*    S_glob_2pv(pTHX_ GV* const gv, STRLEN * const len)
 /* 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)
+PERL_CALLCONV IV       Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV SV*      Perl_sv_2mortal(pTHX_ SV* sv);
-PERL_CALLCONV NV       Perl_sv_2nv(pTHX_ SV* sv)
+PERL_CALLCONV NV       Perl_sv_2nv(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV SV*      Perl_sv_2num(pTHX_ SV* 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)
                        __attribute__nonnull__(pTHX_1); */
 
-PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags)
+PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
 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)
@@ -2200,7 +2198,7 @@ PERL_CALLCONV char*       Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
 /* 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)
+PERL_CALLCONV UV       Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV IV       Perl_sv_iv(pTHX_ SV* sv)
@@ -2225,10 +2223,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)
@@ -2292,12 +2290,12 @@ 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,7 +2310,7 @@ 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)
+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)
@@ -2390,16 +2388,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 +2444,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 +2475,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,7 +2658,7 @@ 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);
@@ -2668,7 +2666,7 @@ PERL_CALLCONV int Perl_yyparse(pTHX);
 PERL_CALLCONV void     Perl_parser_free(pTHX_ const yy_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)
@@ -2730,16 +2728,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 +2896,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);
@@ -3024,7 +3023,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__;
 
@@ -3264,6 +3263,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 +3388,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 +3402,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 +3578,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);
 
@@ -3884,7 +3902,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 +3945,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 +3953,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 +3972,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 +4022,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)
@@ -4072,7 +4096,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 +4110,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 +4131,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 +4168,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 +4243,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);
 
@@ -4530,7 +4556,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);