#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_ SV* msv);
+PERL_CALLCONV void Perl_die_where(pTHX_ SV* msv)
+ __attribute__noreturn__;
+
PERL_CALLCONV void Perl_dounwind(pTHX_ I32 cxix);
/* PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp)
__attribute__nonnull__(pTHX_2)
#define PERL_ARGS_ASSERT_GV_NAME_SET \
assert(gv); assert(name)
+PERL_CALLCONV void Perl_gv_try_downgrade(pTHX_ GV* gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE \
+ assert(gv)
+
PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GV_STASHPV \
#define PERL_ARGS_ASSERT_IS_UTF8_MARK \
assert(p)
+PERL_CALLCONV bool Perl_is_utf8_X_begin(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_BEGIN \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_extend(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_prepend(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_PREPEND \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_non_hangul(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_NON_HANGUL \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_L(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_L \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_LV(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LV \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_LVT(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LVT \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_LV_LVT_V(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LV_LVT_V \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_T(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_T \
+ assert(p)
+
+PERL_CALLCONV bool Perl_is_utf8_X_V(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_V \
+ assert(p)
+
PERL_CALLCONV OP* Perl_jmaybe(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_JMAYBE \
#define PERL_ARGS_ASSERT_OPT_SCALARHV \
assert(rep_op)
+STATIC OP* S_is_inplace_av(pTHX_ OP* o, OP* oright)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_INPLACE_AV \
+ assert(o)
+
#endif
PERL_CALLCONV void Perl_leave_scope(pTHX_ I32 base);
PERL_CALLCONV void Perl_lex_end(pTHX);
PERL_CALLCONV void Perl_lex_start(pTHX_ SV* line, PerlIO *rsfp, bool new_filter);
+PERL_CALLCONV bool Perl_lex_bufutf8(pTHX);
+PERL_CALLCONV char* Perl_lex_grow_linestr(pTHX_ STRLEN len);
+PERL_CALLCONV void Perl_lex_stuff_pvn(pTHX_ char* pv, STRLEN len, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_STUFF_PVN \
+ assert(pv)
+
+PERL_CALLCONV void Perl_lex_stuff_sv(pTHX_ SV* sv, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_STUFF_SV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_lex_unstuff(pTHX_ char* ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_UNSTUFF \
+ assert(ptr)
+
+PERL_CALLCONV void Perl_lex_read_to(pTHX_ char* ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_READ_TO \
+ assert(ptr)
+
+PERL_CALLCONV void Perl_lex_discard_to(pTHX_ char* ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_DISCARD_TO \
+ assert(ptr)
+
+PERL_CALLCONV bool Perl_lex_next_chunk(pTHX_ U32 flags);
+PERL_CALLCONV I32 Perl_lex_peek_unichar(pTHX_ U32 flags);
+PERL_CALLCONV I32 Perl_lex_read_unichar(pTHX_ U32 flags);
+PERL_CALLCONV void Perl_lex_read_space(pTHX_ U32 flags);
PERL_CALLCONV void Perl_op_null(pTHX_ OP* o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_OP_NULL \
assert(v)
PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
-PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name)
+PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_ALLOCMY \
assert(name)
-PERL_CALLCONV PADOFFSET Perl_pad_findmy(pTHX_ const char* name)
+PERL_CALLCONV PADOFFSET Perl_pad_findmy(pTHX_ const char* name, STRLEN len, U32 flags)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PAD_FINDMY \
assert(o)
PERL_CALLCONV void Perl_pad_leavemy(pTHX);
+#ifdef DEBUGGING
PERL_CALLCONV SV* Perl_pad_sv(pTHX_ PADOFFSET po);
+#endif
PERL_CALLCONV void Perl_pad_free(pTHX_ PADOFFSET po);
#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
STATIC void S_pad_reset(pTHX);
#endif
-PERL_CALLCONV void* Perl_get_arena(pTHX_ const size_t svtype, const U32 misc)
+PERL_CALLCONV void* Perl_get_arena(pTHX_ const size_t arenasize, const svtype bodytype)
__attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_PAD_UNDEF \
assert(cv)
-PERL_CALLCONV PADOFFSET Perl_pad_add_name(pTHX_ const char *name, HV* typestash, HV* ourstash, bool clone, bool state)
+PERL_CALLCONV PADOFFSET Perl_pad_add_name(pTHX_ const char *name, const STRLEN len, const U32 flags, HV *typestash, HV *ourstash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PAD_ADD_NAME \
assert(name)
#define PERL_ARGS_ASSERT_PAD_ADD_ANON \
assert(sv)
-PERL_CALLCONV void Perl_pad_check_dup(pTHX_ const char* name, bool is_our, const HV* ourstash)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+STATIC void S_pad_check_dup(pTHX_ SV *name, const U32 flags, const HV *ourstash)
+ __attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PAD_CHECK_DUP \
- assert(name); assert(ourstash)
+ assert(name)
+#endif
#ifdef DEBUGGING
PERL_CALLCONV void Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_PAD_FINDLEX \
assert(name); assert(cv); assert(out_name_sv); assert(out_flags)
+STATIC PADOFFSET S_pad_add_name_sv(pTHX_ SV *namesv, const U32 flags, HV *typestash, HV *ourstash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \
+ assert(namesv)
+
# if defined(DEBUGGING)
STATIC void S_cv_dump(pTHX_ const CV *cv, const char *title)
__attribute__nonnull__(pTHX_1)
#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS \
assert(sv)
+#ifdef DEBUGGING
PERL_CALLCONV void Perl_hv_assert(pTHX_ HV *hv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_HV_ASSERT \
assert(hv)
+#endif
PERL_CALLCONV SV* Perl_hv_scalar(pTHX_ HV *hv)
__attribute__warn_unused_result__