Fix croak() and confess() so that they don't clobber $!
[p5sagit/p5-mst-13.2.git] / proto.h
diff --git a/proto.h b/proto.h
index 6a7564f..b18ec81 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -2,7 +2,7 @@
  *    proto.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2003, 2004, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -56,7 +56,7 @@ PERL_CALLCONV CV*     Perl_gv_handler(pTHX_ HV* stash, I32 id);
 PERL_CALLCONV OP*      Perl_append_elem(pTHX_ I32 optype, OP* head, OP* tail);
 PERL_CALLCONV OP*      Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last);
 PERL_CALLCONV I32      Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
-PERL_CALLCONV void     Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv, char *attrstr, STRLEN len);
+PERL_CALLCONV void     Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, const char *attrstr, STRLEN len);
 PERL_CALLCONV void     Perl_av_clear(pTHX_ AV* ar);
 PERL_CALLCONV SV*      Perl_av_delete(pTHX_ AV* ar, I32 key, I32 flags);
 PERL_CALLCONV bool     Perl_av_exists(pTHX_ AV* ar, I32 key);
@@ -126,14 +126,14 @@ PERL_CALLCONV int Perl_printf_nocontext(const char* fmt, ...)
 PERL_CALLCONV void     Perl_cv_ckproto(pTHX_ const CV* cv, const GV* gv, const char* p);
 PERL_CALLCONV CV*      Perl_cv_clone(pTHX_ CV* proto);
 PERL_CALLCONV SV*      Perl_cv_const_sv(pTHX_ CV* cv);
-PERL_CALLCONV SV*      Perl_op_const_sv(pTHX_ OP* o, CV* cv);
+PERL_CALLCONV SV*      Perl_op_const_sv(pTHX_ const OP* o, CV* cv);
 PERL_CALLCONV void     Perl_cv_undef(pTHX_ CV* cv);
 PERL_CALLCONV void     Perl_cx_dump(pTHX_ PERL_CONTEXT* cs);
 PERL_CALLCONV SV*      Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
 PERL_CALLCONV void     Perl_filter_del(pTHX_ filter_t funcp);
 PERL_CALLCONV I32      Perl_filter_read(pTHX_ int idx, SV* buffer, int maxlen);
-PERL_CALLCONV const char**     Perl_get_op_descs(pTHX);
-PERL_CALLCONV const char**     Perl_get_op_names(pTHX);
+PERL_CALLCONV char**   Perl_get_op_descs(pTHX);
+PERL_CALLCONV char**   Perl_get_op_names(pTHX);
 PERL_CALLCONV const char*      Perl_get_no_modify(pTHX);
 PERL_CALLCONV U32*     Perl_get_opargs(pTHX);
 PERL_CALLCONV PPADDR_t*        Perl_get_ppaddr(pTHX);
@@ -142,7 +142,7 @@ PERL_CALLCONV void  Perl_deb(pTHX_ const char* pat, ...)
        __attribute__format__(__printf__,pTHX_1,pTHX_2);
 PERL_CALLCONV void     Perl_vdeb(pTHX_ const char* pat, va_list* args);
 PERL_CALLCONV void     Perl_debprofdump(pTHX);
-PERL_CALLCONV I32      Perl_debop(pTHX_ OP* o);
+PERL_CALLCONV I32      Perl_debop(pTHX_ const OP* o);
 PERL_CALLCONV I32      Perl_debstack(pTHX);
 PERL_CALLCONV I32      Perl_debstackptrs(pTHX);
 PERL_CALLCONV char*    Perl_delimcpy(pTHX_ char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
@@ -160,7 +160,7 @@ PERL_CALLCONV void  Perl_do_chop(pTHX_ SV* asv, SV* sv);
 PERL_CALLCONV bool     Perl_do_close(pTHX_ GV* gv, bool not_implicit);
 PERL_CALLCONV bool     Perl_do_eof(pTHX_ GV* gv);
 PERL_CALLCONV bool     Perl_do_exec(pTHX_ char* cmd);
-#if defined(WIN32)
+#if defined(WIN32) || defined(SYMBIAN)
 PERL_CALLCONV int      Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp);
 PERL_CALLCONV int      Perl_do_spawn(pTHX_ char* cmd);
 PERL_CALLCONV int      Perl_do_spawn_nowait(pTHX_ char* cmd);
@@ -203,7 +203,7 @@ PERL_CALLCONV void  Perl_dump_fds(pTHX_ char* s);
 #endif
 PERL_CALLCONV void     Perl_dump_form(pTHX_ const GV* gv);
 PERL_CALLCONV void     Perl_gv_dump(pTHX_ GV* gv);
-PERL_CALLCONV void     Perl_op_dump(pTHX_ OP* arg);
+PERL_CALLCONV void     Perl_op_dump(pTHX_ const OP* arg);
 PERL_CALLCONV void     Perl_pmop_dump(pTHX_ PMOP* pm);
 PERL_CALLCONV void     Perl_dump_packsubs(pTHX_ const HV* stash);
 PERL_CALLCONV void     Perl_dump_sub(pTHX_ const GV* gv);
@@ -228,7 +228,7 @@ PERL_CALLCONV GV*   Perl_gv_IOadd(pTHX_ GV* gv);
 PERL_CALLCONV GV*      Perl_gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method);
 PERL_CALLCONV void     Perl_gv_check(pTHX_ HV* stash);
 PERL_CALLCONV void     Perl_gv_efullname(pTHX_ SV* sv, const GV* gv);
-/* PERL_CALLCONV void  gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
+/* PERL_CALLCONV void  Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
 PERL_CALLCONV void     Perl_gv_efullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
 PERL_CALLCONV GV*      Perl_gv_fetchfile(pTHX_ const char* name);
 PERL_CALLCONV GV*      Perl_gv_fetchmeth(pTHX_ HV* stash, const char* name, STRLEN len, I32 level);
@@ -237,7 +237,7 @@ PERL_CALLCONV GV*   Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name);
 PERL_CALLCONV GV*      Perl_gv_fetchmethod_autoload(pTHX_ HV* stash, const char* name, I32 autoload);
 PERL_CALLCONV GV*      Perl_gv_fetchpv(pTHX_ const char* name, I32 add, I32 sv_type);
 PERL_CALLCONV void     Perl_gv_fullname(pTHX_ SV* sv, const GV* gv);
-/* PERL_CALLCONV void  gv_fullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
+/* PERL_CALLCONV void  Perl_gv_fullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
 PERL_CALLCONV void     Perl_gv_fullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
 PERL_CALLCONV void     Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi);
 PERL_CALLCONV HV*      Perl_gv_stashpv(pTHX_ const char* name, I32 create);
@@ -568,8 +568,8 @@ PERL_CALLCONV void  Perl_set_numeric_local(pTHX);
 PERL_CALLCONV void     Perl_set_numeric_radix(pTHX);
 PERL_CALLCONV void     Perl_set_numeric_standard(pTHX);
 PERL_CALLCONV void     Perl_require_pv(pTHX_ const char* pv);
-PERL_CALLCONV void     Perl_pack_cat(pTHX_ SV *cat, char *pat, char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags);
-PERL_CALLCONV void     Perl_packlist(pTHX_ SV *cat, char *pat, char *patend, SV **beglist, SV **endlist);
+PERL_CALLCONV void     Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags);
+PERL_CALLCONV void     Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist);
 PERL_CALLCONV void     Perl_pidgone(pTHX_ Pid_t pid, int status);
 PERL_CALLCONV void     Perl_pmflag(pTHX_ U32* pmfl, int ch);
 PERL_CALLCONV OP*      Perl_pmruntime(pTHX_ OP* pm, OP* expr, bool isreg);
@@ -734,7 +734,7 @@ PERL_CALLCONV char* Perl_sv_pvutf8n_force(pTHX_ SV* sv, STRLEN* lp);
 PERL_CALLCONV char*    Perl_sv_pvbyten_force(pTHX_ SV* sv, STRLEN* lp);
 PERL_CALLCONV char*    Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding);
 PERL_CALLCONV bool     Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen);
-PERL_CALLCONV const char*      Perl_sv_reftype(pTHX_ const SV* sv, int ob);
+PERL_CALLCONV char*    Perl_sv_reftype(pTHX_ const SV* sv, int ob);
 PERL_CALLCONV void     Perl_sv_replace(pTHX_ SV* sv, SV* nsv);
 PERL_CALLCONV void     Perl_sv_report_used(pTHX);
 PERL_CALLCONV void     Perl_sv_reset(pTHX_ const char* s, HV* stash);
@@ -776,8 +776,8 @@ PERL_CALLCONV UV    Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp);
 #if defined(UNLINK_ALL_VERSIONS)
 PERL_CALLCONV I32      Perl_unlnk(pTHX_ char* f);
 #endif
-PERL_CALLCONV I32      Perl_unpack_str(pTHX_ char *pat, char *patend, char *s, char *strbeg, char *strend, char **new_s, I32 ocnt, U32 flags);
-PERL_CALLCONV I32      Perl_unpackstring(pTHX_ char *pat, char *patend, char *s, char *strend, U32 flags);
+PERL_CALLCONV I32      Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags);
+PERL_CALLCONV I32      Perl_unpackstring(pTHX_ const char *pat, const char *patend, const char *s, const char *strend, U32 flags);
 PERL_CALLCONV void     Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
 PERL_CALLCONV void     Perl_unshare_hek(pTHX_ HEK* hek);
 PERL_CALLCONV void     Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg);
@@ -830,6 +830,8 @@ PERL_CALLCONV Malloc_t      Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes);
 PERL_CALLCONV Free_t   Perl_safesysfree(Malloc_t where);
 #if defined(PERL_GLOBAL_STRUCT)
 PERL_CALLCONV struct perl_vars *       Perl_GetVars(pTHX);
+PERL_CALLCONV struct perl_vars*        Perl_init_global_struct(pTHX);
+PERL_CALLCONV void     Perl_free_global_struct(pTHX_ struct perl_vars*);
 #endif
 PERL_CALLCONV int      Perl_runops_standard(pTHX);
 PERL_CALLCONV int      Perl_runops_debug(pTHX);
@@ -858,11 +860,11 @@ PERL_CALLCONV void        Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char*
 PERL_CALLCONV void     Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
 PERL_CALLCONV void     Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
 PERL_CALLCONV void     Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv);
-PERL_CALLCONV void     Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-PERL_CALLCONV void     Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o);
-PERL_CALLCONV void     Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm);
+PERL_CALLCONV void     Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
+PERL_CALLCONV void     Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o);
+PERL_CALLCONV void     Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm);
 PERL_CALLCONV void     Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-PERL_CALLCONV void     Perl_magic_dump(pTHX_ MAGIC *mg);
+PERL_CALLCONV void     Perl_magic_dump(pTHX_ const MAGIC *mg);
 PERL_CALLCONV void     Perl_reginitcolors(pTHX);
 PERL_CALLCONV char*    Perl_sv_2pv_nolen(pTHX_ SV* sv);
 PERL_CALLCONV char*    Perl_sv_2pvutf8_nolen(pTHX_ SV* sv);
@@ -896,6 +898,7 @@ PERL_CALLCONV DIR*  Perl_dirp_dup(pTHX_ DIR* dp);
 PERL_CALLCONV GP*      Perl_gp_dup(pTHX_ GP* gp, CLONE_PARAMS* param);
 PERL_CALLCONV MAGIC*   Perl_mg_dup(pTHX_ MAGIC* mg, CLONE_PARAMS* param);
 PERL_CALLCONV SV*      Perl_sv_dup(pTHX_ SV* sstr, CLONE_PARAMS* param);
+PERL_CALLCONV void     Perl_rvpv_dup(pTHX_ SV* dstr, SV *sstr, CLONE_PARAMS* param);
 #if defined(HAVE_INTERP_INTERN)
 PERL_CALLCONV void     Perl_sys_intern_dup(pTHX_ struct interp_intern* src, struct interp_intern* dst);
 #endif
@@ -911,8 +914,8 @@ PERL_CALLCONV void  Perl_sys_intern_clear(pTHX);
 PERL_CALLCONV void     Perl_sys_intern_init(pTHX);
 #endif
 
-PERL_CALLCONV const char *     Perl_custom_op_name(pTHX_ const OP* op);
-PERL_CALLCONV const char *     Perl_custom_op_desc(pTHX_ const OP* op);
+PERL_CALLCONV char *   Perl_custom_op_name(pTHX_ const OP* op);
+PERL_CALLCONV char *   Perl_custom_op_desc(pTHX_ const OP* op);
 
 #if defined(PERL_COPY_ON_WRITE)
 PERL_CALLCONV int      Perl_sv_release_IVX(pTHX_ SV *sv);
@@ -959,11 +962,11 @@ STATIC int        S_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, const char *meth, I32
 #endif
 
 #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC I32     S_list_assignment(pTHX_ OP *o);
-STATIC void    S_bad_type(pTHX_ I32 n, const char *t, const char *name, OP *kid);
+STATIC I32     S_list_assignment(pTHX_ const OP *o);
+STATIC void    S_bad_type(pTHX_ I32 n, const char *t, const char *name, const OP *kid);
 STATIC void    S_cop_free(pTHX_ COP *cop);
 STATIC OP*     S_modkids(pTHX_ OP *o, I32 type);
-STATIC void    S_no_bareword_allowed(pTHX_ OP *o);
+STATIC void    S_no_bareword_allowed(pTHX_ const OP *o);
 STATIC OP*     S_no_fh_allowed(pTHX_ OP *o);
 STATIC OP*     S_scalarboolean(pTHX_ OP *o);
 STATIC OP*     S_too_few_arguments(pTHX_ OP *o, const char* name);
@@ -971,9 +974,9 @@ STATIC OP*  S_too_many_arguments(pTHX_ OP *o, const char* name);
 STATIC OP*     S_newDEFSVOP(pTHX);
 STATIC OP*     S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp);
 STATIC void    S_simplify_sort(pTHX_ OP *o);
-STATIC bool    S_is_handle_constructor(pTHX_ OP *o, I32 argnum);
+STATIC bool    S_is_handle_constructor(pTHX_ const OP *o, I32 argnum);
 STATIC char*   S_gv_ename(pTHX_ GV *gv);
-STATIC bool    S_scalar_mod_type(pTHX_ OP *o, I32 type);
+STATIC bool    S_scalar_mod_type(pTHX_ const OP *o, I32 type);
 STATIC OP *    S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
 STATIC OP *    S_dup_attrlist(pTHX_ OP *o);
 STATIC void    S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs, bool for_my);
@@ -987,7 +990,7 @@ PERL_CALLCONV void  Perl_Slab_Free(pTHX_ void *op);
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 STATIC void    S_find_beginning(pTHX);
 STATIC void    S_forbid_setid(pTHX_ const char * s);
-STATIC void    S_incpush(pTHX_ const char *, int, int, int, int);
+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);
 STATIC void    S_init_lexer(pTHX);
@@ -997,15 +1000,15 @@ STATIC void      S_init_postdump_symbols(pTHX_ int, char **, char **);
 STATIC void    S_init_predump_symbols(pTHX);
 STATIC void    S_my_exit_jump(pTHX) __attribute__((noreturn));
 STATIC void    S_nuke_stacks(pTHX);
-STATIC void    S_open_script(pTHX_ char *, bool, SV *);
-STATIC void    S_usage(pTHX_ const char *);
+STATIC void    S_open_script(pTHX_ const char *scriptname, bool dosearch, SV *sv);
+STATIC void    S_usage(pTHX_ const char *name);
 STATIC void    S_validate_suid(pTHX_ const char *validarg, const char *scriptname);
 #  if defined(IAMSUID)
 STATIC int     S_fd_on_nosuid_fs(pTHX_ int fd);
 #  endif
 STATIC void*   S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
-STATIC void*   S_run_body(pTHX_ I32 oldscope);
-STATIC void    S_call_body(pTHX_ const OP *myop, int is_eval);
+STATIC void    S_run_body(pTHX_ I32 oldscope) __attribute__((noreturn));
+STATIC void    S_call_body(pTHX_ const OP *myop, bool is_eval);
 STATIC void*   S_call_list_body(pTHX_ CV *cv);
 #endif
 
@@ -1014,15 +1017,15 @@ STATIC SV*      S_refto(pTHX_ SV* sv);
 #endif
 
 #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-STATIC I32     S_unpack_rec(pTHX_ tempsym_t* symptr, char *s, char *strbeg, char *strend, char **new_s);
-STATIC SV **   S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist);
+STATIC I32     S_unpack_rec(pTHX_ struct tempsym* symptr, const char *s, const char *strbeg, const char *strend, const char **new_s);
+STATIC SV **   S_pack_rec(pTHX_ SV *cat, struct tempsym* symptr, SV **beglist, SV **endlist);
 STATIC SV*     S_mul128(pTHX_ SV *sv, U8 m);
-STATIC I32     S_measure_struct(pTHX_ tempsym_t* symptr);
-STATIC char *  S_group_end(pTHX_ char *pat, char *patend, char ender);
-STATIC char *  S_get_num(pTHX_ char *ppat, I32 *);
-STATIC bool    S_next_symbol(pTHX_ tempsym_t* symptr);
-STATIC SV*     S_is_an_int(pTHX_ char *s, STRLEN l);
+STATIC I32     S_measure_struct(pTHX_ struct tempsym* symptr);
+STATIC bool    S_next_symbol(pTHX_ struct tempsym* symptr);
+STATIC SV*     S_is_an_int(pTHX_ const char *s, STRLEN l);
 STATIC int     S_div128(pTHX_ SV *pnum, bool *done);
+STATIC const char *    S_group_end(pTHX_ const char *pat, const char *patend, char ender);
+STATIC const char *    S_get_num(pTHX_ const char *ppat, I32 *lenptr);
 #endif
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
@@ -1032,14 +1035,14 @@ STATIC OP*      S_dofindlabel(pTHX_ OP *o, const char *label, OP **opstack, OP **opli
 STATIC OP*     S_doparseform(pTHX_ SV *sv);
 STATIC bool    S_num_overflow(NV value, I32 fldsize, I32 frcsize);
 STATIC I32     S_dopoptoeval(pTHX_ I32 startingblock);
-STATIC I32     S_dopoptolabel(pTHX_ char *label);
+STATIC I32     S_dopoptolabel(pTHX_ const char *label);
 STATIC I32     S_dopoptoloop(pTHX_ I32 startingblock);
 STATIC I32     S_dopoptosub(pTHX_ I32 startingblock);
 STATIC I32     S_dopoptosub_at(pTHX_ PERL_CONTEXT* cxstk, I32 startingblock);
 STATIC void    S_save_lines(pTHX_ AV *array, SV *sv);
 STATIC OP*     S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq);
 STATIC PerlIO *        S_doopen_pm(pTHX_ const char *name, const char *mode);
-STATIC bool    S_path_is_absolute(pTHX_ char *name);
+STATIC bool    S_path_is_absolute(pTHX_ const char *name);
 #endif
 
 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
@@ -1105,7 +1108,7 @@ STATIC U8*        S_reghop(pTHX_ U8 *pos, I32 off);
 STATIC U8*     S_reghop3(pTHX_ U8 *pos, I32 off, U8 *lim);
 STATIC U8*     S_reghopmaybe(pTHX_ U8 *pos, I32 off);
 STATIC U8*     S_reghopmaybe3(pTHX_ U8 *pos, I32 off, U8 *lim);
-STATIC char*   S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *startpos, I32 norun);
+STATIC char*   S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, I32 norun);
 STATIC void    S_to_utf8_substr(pTHX_ regexp * prog);
 STATIC void    S_to_byte_substr(pTHX_ regexp * prog);
 #endif
@@ -1236,8 +1239,10 @@ STATIC SV*       S_isa_lookup(pTHX_ HV *stash, const char *name, HV *name_stash, int l
 #endif
 
 #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
+#if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
 STATIC char*   S_stdize_locale(pTHX_ char* locs);
 #endif
+#endif
 
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 STATIC COP*    S_closest_cop(pTHX_ COP *cop, OP *o);
@@ -1309,6 +1314,7 @@ PERL_CALLCONV void        Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padl
 PERL_CALLCONV void     Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv);
 
 PERL_CALLCONV void     Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
+PERL_CALLCONV HV*      Perl_pad_compname_type(pTHX_ const PADOFFSET po);
 
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
 STATIC PADOFFSET       S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags);