Add a new test for overloading.pm
[p5sagit/p5-mst-13.2.git] / proto.h
diff --git a/proto.h b/proto.h
index 83455f3..b292f2e 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -3,7 +3,7 @@
  *    proto.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 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.
@@ -532,7 +532,7 @@ PERL_CALLCONV void  Perl_deprecate_old(pTHX_ const char *const s)
 PERL_CALLCONV OP*      Perl_die(pTHX_ const char* pat, ...)
                        __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
 
-#if defined(PERL_IN_UTIL_C)
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_vdie(pTHX_ const char* pat, va_list* args);
 #endif
 PERL_CALLCONV OP*      Perl_die_where(pTHX_ const char* message, STRLEN msglen);
@@ -607,7 +607,7 @@ PERL_CALLCONV bool  Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report)
 
 #endif
 PERL_CALLCONV void     Perl_do_execfree(pTHX);
-#ifdef PERL_IN_DOIO_C
+#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
 STATIC void    S_exec_failed(pTHX_ const char *cmd, int fd, int do_report)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_EXEC_FAILED   \
@@ -794,7 +794,7 @@ PERL_CALLCONV char* Perl_find_script(pTHX_ const char *scriptname, bool dosearch
 #define PERL_ARGS_ASSERT_FIND_SCRIPT   \
        assert(scriptname)
 
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_force_list(pTHX_ OP* arg);
 STATIC OP*     S_fold_constants(pTHX_ OP *o)
                        __attribute__nonnull__(pTHX_1);
@@ -814,7 +814,7 @@ PERL_CALLCONV char* Perl_vform(pTHX_ const char* pat, va_list* args)
        assert(pat)
 
 PERL_CALLCONV void     Perl_free_tmps(pTHX);
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_gen_constant_list(pTHX_ OP* o);
 #endif
 #if !defined(HAS_GETENV_LEN)
@@ -1110,7 +1110,7 @@ PERL_CALLCONV I32 Perl_ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool
 #define PERL_ARGS_ASSERT_IBCMP_UTF8    \
        assert(s1); assert(s2)
 
-#if defined(PERL_IN_DOIO_C)
+#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
 STATIC bool    S_ingroup(pTHX_ Gid_t testgid, bool effective)
                        __attribute__warn_unused_result__;
 
@@ -1437,7 +1437,7 @@ PERL_CALLCONV void        Perl_op_clear(pTHX_ OP* o)
 
 PERL_CALLCONV void     Perl_op_refcnt_lock(pTHX);
 PERL_CALLCONV void     Perl_op_refcnt_unlock(pTHX);
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_linklist(pTHX_ OP *o)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_LINKLIST      \
@@ -2365,7 +2365,7 @@ PERL_CALLCONV OP* Perl_oopsHV(pTHX_ OP* o)
 PERL_CALLCONV void     Perl_pad_leavemy(pTHX);
 PERL_CALLCONV SV*      Perl_pad_sv(pTHX_ PADOFFSET po);
 PERL_CALLCONV void     Perl_pad_free(pTHX_ PADOFFSET po);
-#if defined(PERL_IN_PAD_C)
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
 STATIC void    S_pad_reset(pTHX);
 #endif
 PERL_CALLCONV void     Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust);
@@ -2499,7 +2499,7 @@ PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg)
 #define PERL_ARGS_ASSERT_PMRUNTIME     \
        assert(o); assert(expr)
 
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -2512,7 +2512,7 @@ PERL_CALLCONV void        Perl_pop_scope(pTHX);
 PERL_CALLCONV OP*      Perl_prepend_elem(pTHX_ I32 optype, OP* head, OP* tail);
 PERL_CALLCONV void     Perl_push_scope(pTHX);
 /* PERL_CALLCONV OP*   Perl_ref(pTHX_ OP* o, I32 type); */
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_refkids(pTHX_ OP* o, I32 type);
 #endif
 PERL_CALLCONV void     Perl_regdump(pTHX_ const regexp* r)
@@ -2693,7 +2693,7 @@ PERL_CALLCONV int Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* sav
        assert(save)
 
 PERL_CALLCONV Sighandler_t     Perl_rsignal_state(pTHX_ int i);
-#if defined(PERL_IN_PP_CTL_C)
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 STATIC void    S_rxres_free(pTHX_ void** rsp)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_RXRES_FREE    \
@@ -2781,6 +2781,11 @@ PERL_CALLCONV void       Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen)
 #define PERL_ARGS_ASSERT_SAVE_DELETE   \
        assert(hv); assert(key)
 
+PERL_CALLCONV void     Perl_save_adelete(pTHX_ AV *av, I32 key)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVE_ADELETE  \
+       assert(av)
+
 PERL_CALLCONV void     Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR       \
@@ -2815,6 +2820,7 @@ PERL_CALLCONV HV* Perl_save_hash(pTHX_ GV* gv)
 #define PERL_ARGS_ASSERT_SAVE_HASH     \
        assert(gv)
 
+PERL_CALLCONV void     Perl_save_hints(pTHX);
 /* PERL_CALLCONV void  Perl_save_helem(pTHX_ HV *hv, SV *key, SV **sptr)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -2913,13 +2919,14 @@ PERL_CALLCONV SV*       Perl_save_svref(pTHX_ SV** sptr)
        assert(sptr)
 
 PERL_CALLCONV void     Perl_save_pushptr(pTHX_ void *const ptr, const int type);
-#if defined(PERL_IN_SCOPE_C)
-STATIC void    S_save_pushi32ptr(pTHX_ I32 i, void *const ptr, const int type);
-#endif
+PERL_CALLCONV void     Perl_save_pushi32ptr(pTHX_ const I32 i, void *const ptr, const int type);
 PERL_CALLCONV void     Perl_save_pushptrptr(pTHX_ void *const ptr1, void *const ptr2, const int type);
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
+STATIC void    S_save_pushptri32ptr(pTHX_ void *const ptr1, const I32 i, void *const ptr2, const int type);
+#endif
 PERL_CALLCONV OP*      Perl_sawparens(pTHX_ OP* o);
 PERL_CALLCONV OP*      Perl_scalar(pTHX_ OP* o);
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_scalarkids(pTHX_ OP* o);
 STATIC OP*     S_scalarseq(pTHX_ OP* o);
 #endif
@@ -2960,13 +2967,6 @@ PERL_CALLCONV char*      Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_
 #define PERL_ARGS_ASSERT_SCREAMINSTR   \
        assert(bigstr); assert(littlestr); assert(old_posp)
 
-#if !defined(VMS) && defined(PERL_IN_UTIL_C)
-STATIC I32     S_setenv_getix(pTHX_ const char* nam)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SETENV_GETIX  \
-       assert(nam)
-
-#endif
 PERL_CALLCONV void     Perl_setdefout(pTHX_ GV* gv);
 PERL_CALLCONV HEK*     Perl_share_hek(pTHX_ const char* str, I32 len, U32 hash)
                        __attribute__nonnull__(pTHX_1);
@@ -3008,7 +3008,7 @@ PERL_CALLCONV IO* Perl_sv_2io(pTHX_ SV *const sv)
 #define PERL_ARGS_ASSERT_SV_2IO        \
        assert(sv)
 
-#ifdef PERL_IN_SV_C
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 STATIC bool    S_glob_2number(pTHX_ GV* const gv)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_GLOB_2NUMBER  \
@@ -3082,7 +3082,7 @@ PERL_CALLCONV char*       Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp)
        assert(sv); assert(lp)
 
 PERL_CALLCONV I32      Perl_sv_true(pTHX_ SV *const sv);
-#if defined (PERL_IN_SV_C)
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 STATIC void    S_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SV_ADD_ARENA  \
@@ -3974,6 +3974,11 @@ PERL_CALLCONV void       Perl_reginitcolors(pTHX);
 #define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE       \
        assert(sv)
 
+/* PERL_CALLCONV STRLEN        sv_utf8_upgrade_nomg(pTHX_ SV *sv)
+                       __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_NOMG  \
+       assert(sv)
+
 PERL_CALLCONV bool     Perl_sv_utf8_downgrade(pTHX_ SV *const sv, const bool fail_ok)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE     \
@@ -4758,7 +4763,7 @@ STATIC void       S_find_beginning(pTHX_ SV* linestr_sv, PerlIO *rsfp)
        assert(linestr_sv); assert(rsfp)
 
 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_incpush(pTHX_ const char *dir, bool addsubdirs, bool addoldvers, bool usesep, bool canrelocate, bool unshift);
 STATIC void    S_init_interp(pTHX);
 STATIC void    S_init_ids(pTHX);
 STATIC void    S_init_main_stash(pTHX);
@@ -5946,11 +5951,16 @@ PERL_CALLCONV void      Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const ssv, const
 #define PERL_ARGS_ASSERT_SV_CATSV_FLAGS        \
        assert(dsv)
 
-PERL_CALLCONV STRLEN   Perl_sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags)
-                       __attribute__nonnull__(pTHX_1);
+/* PERL_CALLCONV STRLEN        Perl_sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags)
+                       __attribute__nonnull__(pTHX_1); */
 #define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS \
        assert(sv)
 
+PERL_CALLCONV STRLEN   Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extra)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW    \
+       assert(sv)
+
 PERL_CALLCONV char*    Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS    \
@@ -6031,7 +6041,7 @@ PERL_CALLCONV PerlIO *    Perl_PerlIO_stderr(pTHX)
 #endif /* PERLIO_LAYERS */
 
 PERL_CALLCONV void     Perl_deb_stack_all(pTHX);
-#ifdef PERL_IN_DEB_C
+#if defined(PERL_IN_DEB_C) || defined(PERL_DECL_PROT)
 STATIC void    S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_DEB_STACK_N   \
@@ -6554,6 +6564,35 @@ PERL_CALLCONV void       Perl_emulate_cop_io(pTHX_ const COP *const c, SV *const sv)
 
 PERL_CALLCONV REGEXP * Perl_get_re_arg(pTHX_ SV *sv);
 
+PERL_CALLCONV SV*      Perl_mro_get_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA  \
+       assert(smeta); assert(which)
+
+PERL_CALLCONV SV*      Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which, SV *const data)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA  \
+       assert(smeta); assert(which); assert(data)
+
+PERL_CALLCONV const struct mro_alg *   Perl_mro_get_from_name(pTHX_ SV *name)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME     \
+       assert(name)
+
+PERL_CALLCONV void     Perl_mro_register(pTHX_ const struct mro_alg *mro)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_REGISTER  \
+       assert(mro)
+
+PERL_CALLCONV void     Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_SET_MRO   \
+       assert(meta); assert(name)
+
 PERL_CALLCONV struct mro_meta* Perl_mro_meta_init(pTHX_ HV* stash)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_MRO_META_INIT \
@@ -6573,11 +6612,6 @@ PERL_CALLCONV AV*        Perl_mro_get_linear_isa(pTHX_ HV* stash)
        assert(stash)
 
 #if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
-STATIC AV*     S_mro_get_linear_isa_c3(pTHX_ HV* stash, U32 level)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_C3 \
-       assert(stash)
-
 STATIC AV*     S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS        \