This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Expose save_pushptrptr() and implement SAVESWITCHSTACK() with it.
[perl5.git] / proto.h
diff --git a/proto.h b/proto.h
index 14dc4f1..83455f3 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -175,12 +175,6 @@ PERL_CALLCONV void Perl_av_extend(pTHX_ AV *av, I32 key)
 #define PERL_ARGS_ASSERT_AV_EXTEND     \
        assert(av)
 
-PERL_CALLCONV AV*      Perl_av_fake(pTHX_ I32 size, SV **strp)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AV_FAKE       \
-       assert(strp)
-
 PERL_CALLCONV SV**     Perl_av_fetch(pTHX_ AV *av, I32 key, I32 lval)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
@@ -1150,14 +1144,6 @@ PERL_CALLCONV bool       Perl_io_close(pTHX_ IO* io, bool not_implicit)
 PERL_CALLCONV OP*      Perl_invert(pTHX_ OP* cmd)
                        __attribute__warn_unused_result__;
 
-#if defined(PERL_IN_GV_C)
-STATIC bool    S_is_gv_magical(pTHX_ const char *name, STRLEN len, U32 flags)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_GV_MAGICAL \
-       assert(name)
-
-#endif
 PERL_CALLCONV I32      Perl_is_lvalue_sub(pTHX)
                        __attribute__warn_unused_result__;
 
@@ -2337,12 +2323,6 @@ PERL_CALLCONV char*      Perl_ninstr(pTHX_ const char* big, const char* bigend, const
 #define PERL_ARGS_ASSERT_NINSTR        \
        assert(big); assert(bigend); assert(little); assert(lend)
 
-PERL_CALLCONV OP*      Perl_oopsCV(pTHX_ OP* o)
-                       __attribute__noreturn__
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OOPSCV        \
-       assert(o)
-
 PERL_CALLCONV void     Perl_op_free(pTHX_ OP* arg);
 #ifdef PERL_MAD
 PERL_CALLCONV OP*      Perl_package(pTHX_ OP* o)
@@ -2505,8 +2485,8 @@ PERL_CALLCONV void        Perl_packlist(pTHX_ SV *cat, const char *pat, const char *pat
 #define PERL_ARGS_ASSERT_PACKLIST      \
        assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist)
 
-#ifdef PERL_USES_PL_PIDSTATUS
-PERL_CALLCONV void     Perl_pidgone(pTHX_ Pid_t pid, int status);
+#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
+STATIC void    S_pidgone(pTHX_ Pid_t pid, int status);
 #endif
 PERL_CALLCONV void     Perl_pmflag(pTHX_ U32* pmfl, int ch)
                        __attribute__nonnull__(pTHX_1);
@@ -2519,18 +2499,22 @@ PERL_CALLCONV OP*       Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg)
 #define PERL_ARGS_ASSERT_PMRUNTIME     \
        assert(o); assert(expr)
 
-PERL_CALLCONV OP*      Perl_pmtrans(pTHX_ OP* o, OP* expr, OP* repl)
+#if defined(PERL_IN_OP_C)
+STATIC OP*     S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
 #define PERL_ARGS_ASSERT_PMTRANS       \
        assert(o); assert(expr); assert(repl)
 
+#endif
 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); */
-PERL_CALLCONV OP*      Perl_refkids(pTHX_ OP* o, I32 type);
+#if defined(PERL_IN_OP_C)
+STATIC OP*     S_refkids(pTHX_ OP* o, I32 type);
+#endif
 PERL_CALLCONV void     Perl_regdump(pTHX_ const regexp* r)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_REGDUMP       \
@@ -2709,17 +2693,19 @@ 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);
-PERL_CALLCONV void     Perl_rxres_free(pTHX_ void** rsp)
+#if defined(PERL_IN_PP_CTL_C)
+STATIC void    S_rxres_free(pTHX_ void** rsp)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_RXRES_FREE    \
        assert(rsp)
 
-PERL_CALLCONV void     Perl_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
+STATIC void    S_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_RXRES_RESTORE \
        assert(rsp); assert(rx)
 
+#endif
 PERL_CALLCONV void     Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -2801,9 +2787,9 @@ PERL_CALLCONV void        Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void
        assert(p)
 
 PERL_CALLCONV void     Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
-PERL_CALLCONV void     Perl_save_freesv(pTHX_ SV* sv);
-PERL_CALLCONV void     Perl_save_freeop(pTHX_ OP* o);
-PERL_CALLCONV void     Perl_save_freepv(pTHX_ char* pv);
+/* PERL_CALLCONV void  Perl_save_freesv(pTHX_ SV* sv); */
+/* PERL_CALLCONV void  Perl_save_freeop(pTHX_ OP* o); */
+/* PERL_CALLCONV void  Perl_save_freepv(pTHX_ char* pv); */
 PERL_CALLCONV void     Perl_save_generic_svref(pTHX_ SV** sptr)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF    \
@@ -2888,8 +2874,8 @@ PERL_CALLCONV void        Perl_save_long(pTHX_ long* longp)
 #define PERL_ARGS_ASSERT_SAVE_LONG     \
        assert(longp)
 
-PERL_CALLCONV void     Perl_save_mortalizesv(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1);
+/* PERL_CALLCONV void  Perl_save_mortalizesv(pTHX_ SV* sv)
+                       __attribute__nonnull__(pTHX_1); */
 #define PERL_ARGS_ASSERT_SAVE_MORTALIZESV      \
        assert(sv)
 
@@ -2898,7 +2884,7 @@ PERL_CALLCONV void        Perl_save_nogv(pTHX_ GV* gv)
 #define PERL_ARGS_ASSERT_SAVE_NOGV     \
        assert(gv)
 
-PERL_CALLCONV void     Perl_save_op(pTHX);
+/* PERL_CALLCONV void  Perl_save_op(pTHX); */
 PERL_CALLCONV SV*      Perl_save_scalar(pTHX_ GV* gv)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SAVE_SCALAR   \
@@ -2926,6 +2912,11 @@ PERL_CALLCONV SV*        Perl_save_svref(pTHX_ SV** sptr)
 #define PERL_ARGS_ASSERT_SAVE_SVREF    \
        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_pushptrptr(pTHX_ void *const ptr1, void *const ptr2, const int type);
 PERL_CALLCONV OP*      Perl_sawparens(pTHX_ OP* o);
 PERL_CALLCONV OP*      Perl_scalar(pTHX_ OP* o);
 #if defined(PERL_IN_OP_C)
@@ -2969,8 +2960,8 @@ 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)
-PERL_CALLCONV I32      Perl_setenv_getix(pTHX_ const char* nam)
+#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)
@@ -3091,11 +3082,13 @@ 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);
-PERL_CALLCONV void     Perl_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags)
+#if defined (PERL_IN_SV_C)
+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  \
        assert(ptr)
 
+#endif
 PERL_CALLCONV int      Perl_sv_backoff(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SV_BACKOFF    \
@@ -3739,11 +3732,13 @@ PERL_CALLCONV void      Perl_parser_free(pTHX_ const yy_parser *parser)
 #define PERL_ARGS_ASSERT_PARSER_FREE   \
        assert(parser)
 
-PERL_CALLCONV int      Perl_yywarn(pTHX_ const char *const s)
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
+STATIC int     S_yywarn(pTHX_ const char *const s)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_YYWARN        \
        assert(s)
 
+#endif
 #if defined(MYMALLOC)
 PERL_CALLCONV void     Perl_dump_mstats(pTHX_ const char* s)
                        __attribute__nonnull__(pTHX_1);
@@ -6320,11 +6315,11 @@ PERL_CALLCONV GV*       Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_typ
 #define PERL_ARGS_ASSERT_GV_FETCHSV    \
        assert(name)
 
-PERL_CALLCONV bool     Perl_is_gv_magical_sv(pTHX_ SV *name, U32 flags)
+PERL_CALLCONV bool     Perl_is_gv_magical_sv(pTHX_ SV *const name_sv, U32 flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_IS_GV_MAGICAL_SV      \
-       assert(name)
+       assert(name_sv)
 
 
 PERL_CALLCONV bool     Perl_stashpv_hvname_match(pTHX_ const COP *c, const HV *hv)
@@ -6578,12 +6573,12 @@ 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, I32 level)
+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, I32 level)
+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        \
        assert(stash)