PERL_CALLCONV HV* Perl_gv_stashsv(pTHX_ SV* sv, I32 create);
PERL_CALLCONV void Perl_hv_clear(pTHX_ HV* tb);
+PERL_CALLCONV HV * Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
+ __attribute__nonnull__(pTHX_1);
+
PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry)
__attribute__nonnull__(pTHX_1);
__attribute__nonnull__(pTHX_1); */
#ifdef USE_ITHREADS
+PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_copy(pTHX_ const struct refcounted_he *he);
PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_dup(pTHX_ const struct refcounted_he *const he, CLONE_PARAMS* param)
__attribute__nonnull__(pTHX_2);
#endif
PERL_CALLCONV HV * Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c);
PERL_CALLCONV void Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
-PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new(pTHX_ struct refcounted_he *parent, SV *key, SV *value);
+PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new(pTHX_ struct refcounted_he *const parent, SV *const key, SV *const value);
PERL_CALLCONV SV** Perl_hv_store(pTHX_ HV* tb, const char* key, I32 klen, SV* val, U32 hash);
PERL_CALLCONV HE* Perl_hv_store_ent(pTHX_ HV* tb, SV* key, SV* val, U32 hash);
PERL_CALLCONV SV** Perl_hv_store_flags(pTHX_ HV* tb, const char* key, I32 klen, SV* val, U32 hash, int flags);
PERL_CALLCONV void Perl_push_scope(pTHX);
/* PERL_CALLCONV OP* ref(pTHX_ OP* o, I32 type); */
PERL_CALLCONV OP* Perl_refkids(pTHX_ OP* o, I32 type);
-PERL_CALLCONV void Perl_regdump(pTHX_ regexp* r)
+PERL_CALLCONV void Perl_regdump(pTHX_ const regexp* r)
__attribute__nonnull__(pTHX_1);
PERL_CALLCONV SV* Perl_regclass_swash(pTHX_ const struct regnode *n, bool doinit, SV **listsvp, SV **altsvp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_3);
-STATIC void S_regoptail(pTHX_ struct RExC_state_t *state, regnode *p, regnode *val)
+STATIC void S_regoptail(pTHX_ const struct RExC_state_t *state, regnode *p, const regnode *val)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-STATIC void S_regtail(pTHX_ struct RExC_state_t *state, regnode *p, regnode *val)
+STATIC void S_regtail(pTHX_ const struct RExC_state_t *state, regnode *p, const regnode *val)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
__attribute__nonnull__(pTHX_1);
# ifdef DEBUGGING
-STATIC regnode* S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
+STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, SV* sv, I32 l)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_4);
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_5);
STATIC void S_put_byte(pTHX_ SV* sv, int c)
__attribute__nonnull__(pTHX_1);
# endif
-STATIC void S_scan_commit(pTHX_ struct RExC_state_t* state, struct scan_data_t *data)
+STATIC void S_scan_commit(pTHX_ const struct RExC_state_t* state, struct scan_data_t *data)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-STATIC void S_cl_anything(struct RExC_state_t* state, struct regnode_charclass_class *cl)
+STATIC void S_cl_anything(const struct RExC_state_t* state, struct regnode_charclass_class *cl)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
__attribute__warn_unused_result__
__attribute__nonnull__(1);
-STATIC void S_cl_init(struct RExC_state_t* state, struct regnode_charclass_class *cl)
+STATIC void S_cl_init(const struct RExC_state_t* state, struct regnode_charclass_class *cl)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-STATIC void S_cl_init_zero(struct RExC_state_t* state, struct regnode_charclass_class *cl)
+STATIC void S_cl_init_zero(const struct RExC_state_t* state, struct regnode_charclass_class *cl)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-STATIC void S_cl_or(struct RExC_state_t* state, struct regnode_charclass_class *cl, const struct regnode_charclass_class *or_with)
+STATIC void S_cl_or(const struct RExC_state_t* state, struct regnode_charclass_class *cl, const struct regnode_charclass_class *or_with)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
#endif
#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
-STATIC I32 S_regmatch(pTHX_ regnode *prog)
+STATIC I32 S_regmatch(pTHX_ regexp *rex, regnode *prog)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
STATIC I32 S_regrepeat(pTHX_ const regnode *p, I32 max)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
STATIC CHECKPOINT S_regcppush(pTHX_ I32 parenfloor);
-STATIC char* S_regcppop(pTHX);
-STATIC void S_cache_re(pTHX_ regexp *prog)
+STATIC char* S_regcppop(pTHX_ const regexp *rex)
__attribute__nonnull__(pTHX_1);
STATIC U8* S_reghop3(U8 *pos, I32 off, U8 *lim)
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-STATIC char* S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, const char *strend, I32 norun)
+STATIC char* S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, I32 norun)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-STATIC STRLEN S_sv_pos_u2b_midway(pTHX_ const U8 *const start, const U8 *const send, STRLEN uoffset, STRLEN uend)
+STATIC STRLEN S_sv_pos_u2b_midway(pTHX_ const U8 *const start, const U8 *send, STRLEN uoffset, STRLEN uend)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);