This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PATCH: [perl 116411]: code comment for commit 518a5310cc "Silence a MSVC++-specific...
[perl5.git] / embed.fnc
index 3b92083..1fd1f4e 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :
 : flags are single letters with following meanings:
 :
-:   A  Member of public API:
+:   A  Available fully everywhere (usually part of the public API):
 :
 :         add entry to the list of exported symbols (unless x or m);
-:         any doc entry goes in perlapi.pod rather than perlintern.pod
+:         any doc entry goes in perlapi.pod rather than perlintern.pod.  If no
+:           documentation is furnished for this function, and M is also
+:           specified, the function is not listed as part of the public API.
+:           If M isn't specified and no documentation is furnished, the
+:           function is listed in perlapi as existing and being undocumented
 :         makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT
 :
+:      If the function is only exported for use in a public
+:      macro, see X.
+:
 :   a  Allocates memory a la malloc/calloc.  Also implies "R":
 :
 :         proto.h: add __attribute__malloc__
 :
 :   b  Binary backward compatibility; function is a macro
 :      but has also Perl_ implementation (which is exported); often
-:      implemented in mathoms.c:
+:      implemented in mathoms.c (whose compilation can be suppressed; see
+:      INSTALL):
 :
 :         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
@@ -43,7 +51,8 @@
 :      Should always be combined with "X" to be usable from dynamically
 :      loaded extensions.
 :
-:   f  Function takes printf style format string, varargs:
+:   f  Function takes printf style format string, varargs (hence any entry that
+:      would otherwise go in embed.h is suppressed):
 :
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
 :
 :         add entry to the list of exported symbols, unless x or m
 :
+:      This is often used for private functions that are used by public
+:      macros.  In those cases the macros must use the long form of the
+:      name (Perl_blah(aTHX_ ...)).
+:
 :   x  Not exported
 :
 :         suppress entry in the list of exported symbols
@@ -250,6 +263,7 @@ Anprd       |void   |croak_no_modify
 Anprd  |void   |croak_xs_usage |NN const CV *const cv \
                                |NN const char *const params
 npr    |void   |croak_no_mem
+nprX   |void   |croak_popstack
 #if defined(WIN32)
 norx   |void   |win32_croak_not_implemented|NN const char * fname
 #endif
@@ -274,7 +288,7 @@ Afnp        |int    |printf_nocontext|NN const char *format|...
 p      |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
                                |const int code|NULLOK int * const opnum
 : Used in gv.c
-p      |OP *   |coresub_op     |NN SV *coreargssv|const int code \
+p      |OP *   |coresub_op     |NN SV *const coreargssv|const int code \
                                |const int opnum
 : Used in sv.c
 p      |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
@@ -590,25 +604,28 @@ pR        |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
 : Used in cop.h
 XopR   |I32    |was_lvalue_sub
-ApPR   |U32    |to_uni_upper_lc|U32 c
-ApPR   |U32    |to_uni_title_lc|U32 c
-ApPR   |U32    |to_uni_lower_lc|U32 c
-ApPR   |bool   |is_uni_alnum   |UV c
-ApPR   |bool   |is_uni_idfirst |UV c
-ApPR   |bool   |is_uni_alpha   |UV c
-ApPR   |bool   |is_uni_ascii   |UV c
-ApPR   |bool   |is_uni_blank   |UV c
-ApPR   |bool   |is_uni_space   |UV c
-ApPR   |bool   |is_uni_cntrl   |UV c
-ApPR   |bool   |is_uni_graph   |UV c
-ApPR   |bool   |is_uni_digit   |UV c
-ApPR   |bool   |is_uni_upper   |UV c
-ApPR   |bool   |is_uni_lower   |UV c
-ApPR   |bool   |is_uni_print   |UV c
-ApPR   |bool   |is_uni_punct   |UV c
-ApPR   |bool   |is_uni_xdigit  |UV c
-Ap     |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
-Ap     |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
+ADMpPR |U32    |to_uni_upper_lc|U32 c
+ADMpPR |U32    |to_uni_title_lc|U32 c
+ADMpPR |U32    |to_uni_lower_lc|U32 c
+ADMpPR |bool   |is_uni_alnum   |UV c
+ADMpPR |bool   |is_uni_alnumc  |UV c
+ADMpPR |bool   |is_uni_idfirst |UV c
+ADMpPR |bool   |is_uni_alpha   |UV c
+ADMpPR |bool   |is_uni_ascii   |UV c
+ADMpPR |bool   |is_uni_blank   |UV c
+ADMpPR |bool   |is_uni_space   |UV c
+ADMpPR |bool   |is_uni_cntrl   |UV c
+ADMpPR |bool   |is_uni_graph   |UV c
+ADMpPR |bool   |is_uni_digit   |UV c
+ADMpPR |bool   |is_uni_upper   |UV c
+ADMpPR |bool   |is_uni_lower   |UV c
+ADMpPR |bool   |is_uni_print   |UV c
+ADMpPR |bool   |is_uni_punct   |UV c
+ADMpPR |bool   |is_uni_xdigit  |UV c
+AMp    |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
+AMp    |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
+iDMpPR |bool   |isIDFIRST_lazy |NN const char* p
+iDMpPR |bool   |isALNUM_lazy   |NN const char* p
 #ifdef PERL_IN_UTF8_C
 sR     |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
 #endif
@@ -618,52 +635,59 @@ EXp        |UV        |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const
 #if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
 p      |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
 #endif
-A    |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
-Amp    |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
+AMp    |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
+AMmp   |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|const U8 flags
-ApPR   |bool   |is_uni_alnum_lc|UV c
-ApPR   |bool   |is_uni_idfirst_lc|UV c
-ApPR   |bool   |is_uni_alpha_lc|UV c
-ApPR   |bool   |is_uni_ascii_lc|UV c
-ApPR   |bool   |is_uni_space_lc|UV c
-ApPR   |bool   |is_uni_cntrl_lc|UV c
-ApPR   |bool   |is_uni_graph_lc|UV c
-ApPR   |bool   |is_uni_digit_lc|UV c
-ApPR   |bool   |is_uni_upper_lc|UV c
-ApPR   |bool   |is_uni_lower_lc|UV c
-ApPR   |bool   |is_uni_print_lc|UV c
-ApPR   |bool   |is_uni_punct_lc|UV c
-ApPR   |bool   |is_uni_xdigit_lc|UV c
+ADMpPR |bool   |is_uni_alnum_lc|UV c
+ADMpPR |bool   |is_uni_alnumc_lc|UV c
+ADMpPR |bool   |is_uni_idfirst_lc|UV c
+AMpR   |bool   |_is_uni_perl_idcont|UV c
+AMpR   |bool   |_is_uni_perl_idstart|UV c
+ADMpPR |bool   |is_uni_alpha_lc|UV c
+ADMpPR |bool   |is_uni_ascii_lc|UV c
+ADMpPR |bool   |is_uni_space_lc|UV c
+ADMpPR |bool   |is_uni_blank_lc|UV c
+ADMpPR |bool   |is_uni_cntrl_lc|UV c
+ADMpPR |bool   |is_uni_graph_lc|UV c
+ADMpPR |bool   |is_uni_digit_lc|UV c
+ADMpPR |bool   |is_uni_upper_lc|UV c
+ADMpPR |bool   |is_uni_lower_lc|UV c
+ADMpPR |bool   |is_uni_print_lc|UV c
+ADMpPR |bool   |is_uni_punct_lc|UV c
+ADMpPR |bool   |is_uni_xdigit_lc|UV c
 Anpd   |bool   |is_ascii_string|NN const U8 *s|STRLEN len
 AnpdD  |STRLEN |is_utf8_char   |NN const U8 *s
 Anpd   |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
 Anpd   |bool   |is_utf8_string |NN const U8 *s|STRLEN len
 Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep
 Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
-ApR    |bool   |is_utf8_alnum  |NN const U8 *p
-ApR    |bool   |is_utf8_idfirst|NN const U8 *p
-ApR    |bool   |is_utf8_xidfirst|NN const U8 *p
-EXpR   |bool   |_is_utf8__perl_idstart|NN const U8 *p
-ApR    |bool   |is_utf8_idcont |NN const U8 *p
-ApR    |bool   |is_utf8_xidcont        |NN const U8 *p
-ApR    |bool   |is_utf8_alpha  |NN const U8 *p
-ApR    |bool   |is_utf8_ascii  |NN const U8 *p
-ApR    |bool   |is_utf8_blank  |NN const U8 *p
-ApR    |bool   |is_utf8_space  |NN const U8 *p
-ApR    |bool   |is_utf8_perl_space     |NN const U8 *p
-ApR    |bool   |is_utf8_perl_word      |NN const U8 *p
-ApR    |bool   |is_utf8_cntrl  |NN const U8 *p
-ApR    |bool   |is_utf8_digit  |NN const U8 *p
-ApR    |bool   |is_utf8_posix_digit    |NN const U8 *p
-ApR    |bool   |is_utf8_graph  |NN const U8 *p
-ApR    |bool   |is_utf8_upper  |NN const U8 *p
-ApR    |bool   |is_utf8_lower  |NN const U8 *p
-ApR    |bool   |is_utf8_print  |NN const U8 *p
-ApR    |bool   |is_utf8_punct  |NN const U8 *p
-ApR    |bool   |is_utf8_xdigit |NN const U8 *p
-ApR    |bool   |is_utf8_mark   |NN const U8 *p
-EXpR   |bool   |is_utf8_X_extend       |NN const U8 *p
-EXpR   |bool   |is_utf8_X_regular_begin|NN const U8 *p
+AMpR   |bool   |_is_uni_FOO|const U8 classnum|const UV c
+AMpR   |bool   |_is_utf8_FOO|const U8 classnum|NN const U8 *p
+ADMpR  |bool   |is_utf8_alnum  |NN const U8 *p
+ADMpR  |bool   |is_utf8_alnumc |NN const U8 *p
+ADMpR  |bool   |is_utf8_idfirst|NN const U8 *p
+ADMpR  |bool   |is_utf8_xidfirst|NN const U8 *p
+AMpR   |bool   |_is_utf8_perl_idcont|NN const U8 *p
+AMpR   |bool   |_is_utf8_perl_idstart|NN const U8 *p
+ADMpR  |bool   |is_utf8_idcont |NN const U8 *p
+ADMpR  |bool   |is_utf8_xidcont        |NN const U8 *p
+ADMpR  |bool   |is_utf8_alpha  |NN const U8 *p
+ADMpR  |bool   |is_utf8_ascii  |NN const U8 *p
+ADMpR  |bool   |is_utf8_blank  |NN const U8 *p
+ADMpR  |bool   |is_utf8_space  |NN const U8 *p
+ADMpR  |bool   |is_utf8_perl_space     |NN const U8 *p
+ADMpR  |bool   |is_utf8_perl_word      |NN const U8 *p
+ADMpR  |bool   |is_utf8_cntrl  |NN const U8 *p
+ADMpR  |bool   |is_utf8_digit  |NN const U8 *p
+ADMpR  |bool   |is_utf8_posix_digit    |NN const U8 *p
+ADMpR  |bool   |is_utf8_graph  |NN const U8 *p
+ADMpR  |bool   |is_utf8_upper  |NN const U8 *p
+ADMpR  |bool   |is_utf8_lower  |NN const U8 *p
+ADMpR  |bool   |is_utf8_print  |NN const U8 *p
+ADMpR  |bool   |is_utf8_punct  |NN const U8 *p
+ADMpR  |bool   |is_utf8_xdigit |NN const U8 *p
+AMpR   |bool   |_is_utf8_mark  |NN const U8 *p
+ADMpR  |bool   |is_utf8_mark   |NN const U8 *p
 : Used in perly.y
 p      |OP*    |jmaybe         |NN OP *o
 : Used in pp.c 
@@ -713,10 +737,22 @@ Ap        |void   |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
 p      |OP*    |localize       |NN OP *o|I32 lex
 ApdR   |I32    |looks_like_number|NN SV *const sv
 Apd    |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-#ifdef PERL_IN_DQUOTE_STATIC_C
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
 EMsR   |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
-EMsR   |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
-EMiR   |bool   |grok_bslash_x  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+EMsR   |bool   |grok_bslash_o  |NN char** s|NN UV* uv           \
+                               |NN const char** error_msg       \
+                               |const bool output_warning       \
+                               |const bool strict               \
+                               |const bool silence_non_portable \
+                               |const bool utf8
+EMiR   |bool   |grok_bslash_x  |NN char** s|NN UV* uv           \
+                               |NN const char** error_msg       \
+                               |const bool output_warning       \
+                               |const bool strict               \
+                               |const bool silence_non_portable \
+                               |const bool utf8
+EMsPR  |char*|form_short_octal_warning|NN const char * const s  \
+                               |const STRLEN len
 #endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
@@ -748,7 +784,13 @@ p  |int    |magic_getvec   |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_nextpack |NN SV *sv|NN MAGIC *mg|NN SV *key
 p      |U32    |magic_regdata_cnt|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_regdatum_get|NN SV* sv|NN MAGIC* mg
+:removing noreturn to silence a warning for this function resulted in no
+:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits
+#ifdef _MSC_VER
+p      |int    |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
+#else
 pr     |int    |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
+#endif
 p      |int    |magic_set      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setarylen|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_cleararylen_p|NN SV* sv|NN MAGIC* mg
@@ -1070,7 +1112,7 @@ Ap        |char*  |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
                                |NN char* strend|const U32 flags \
                                |NULLOK re_scream_pos_data *data
 Ap     |SV*    |re_intuit_string|NN REGEXP  *const r
-#if defined(PERL_IN_DQUOTE_STATIC_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
 EiPR   |I32    |regcurly       |NN const char *s
 #endif
 Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
@@ -1292,9 +1334,7 @@ ApdR      |bool   |sv_does_pvn    |NN SV* sv|NN const char *const name|const STRLEN len \
 Amd    |I32    |sv_eq          |NULLOK SV* sv1|NULLOK SV* sv2
 Apd    |I32    |sv_eq_flags    |NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
 Apd    |void   |sv_free        |NULLOK SV *const sv
-: FIXME Used in SvREFCNT_dec() but only
-: if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-poMX   |void   |sv_free2       |NN SV *const sv
+poMX   |void   |sv_free2       |NN SV *const sv|const U32 refcnt
 : Used only in perl.c
 pd     |void   |sv_free_arenas
 Apd    |char*  |sv_gets        |NN SV *const sv|NN PerlIO *const fp|I32 append
@@ -1392,10 +1432,12 @@ EiMR    |IV     |invlist_previous_index|NN SV* const invlist
 EiM    |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
 EiM    |void   |invlist_trim   |NN SV* const invlist
 EiMR   |SV*    |invlist_clone  |NN SV* const invlist
+EiMR   |bool   |invlist_is_iterating|NN SV* const invlist
 EiMR   |UV*    |get_invlist_iter_addr  |NN SV* invlist
 EiMR   |UV*    |get_invlist_version_id_addr    |NN SV* invlist
 EiM    |void   |invlist_iterinit|NN SV* invlist
 EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EiM    |void   |invlist_iterfinish|NN SV* invlist
 EiMR   |UV     |invlist_highest|NN SV* const invlist
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
@@ -1424,6 +1466,7 @@ EMiR      |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
 EXpMR  |IV     |_invlist_search        |NN SV* const invlist|const UV cp
 EXMpR  |SV*    |_get_swash_invlist|NN SV* const swash
 EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+: Not used currently: EXMp     |void   |_invlist_dump  |NN SV* const invlist|NN const char * const header
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
@@ -1753,11 +1796,7 @@ s        |void   |unwind_handler_stack|NULLOK const void *p
 #if defined(PERL_IN_OP_C)
 sRn    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
 sR     |I32    |is_list_assignment|NULLOK const OP *o
-#  ifdef USE_ITHREADS
-so     |void   |forget_pmop    |NN PMOP *const o|U32 flags
-#  else
-so     |void   |forget_pmop    |NN PMOP *const o
-#  endif
+s      |void   |forget_pmop    |NN PMOP *const o
 s      |void   |find_and_forget_pmops  |NN OP *o
 s      |void   |cop_free       |NN COP *cop
 s      |OP*    |modkids        |NULLOK OP *o|I32 type
@@ -1892,7 +1931,7 @@ s |OP*    |do_smartmatch  |NULLOK HV* seen_this \
 #endif
 
 #if defined(PERL_IN_PP_HOT_C)
-s      |void   |do_oddball     |NN HV *hash|NN SV **relem|NN SV **firstrelem
+s      |void   |do_oddball     |NN SV **oddkey|NN SV **firstkey
 sR     |SV*    |method_common  |NN SV* meth|NULLOK U32* hashp
 #endif
 
@@ -1932,7 +1971,14 @@ Es       |regnode*|regbranch     |NN struct RExC_state_t *pRExC_state \
 Es     |STRLEN |reguni         |NN const struct RExC_state_t *pRExC_state \
                                |UV uv|NN char *s
 Es     |regnode*|regclass      |NN struct RExC_state_t *pRExC_state \
-                               |NN I32 *flagp|U32 depth
+                               |NN I32 *flagp|U32 depth|const bool stop_at_1 \
+                               |bool allow_multi_fold                        \
+                               |const bool silence_non_portable              \
+                               |NULLOK SV** ret_invlist
+Es     |bool|could_it_be_POSIX |NN struct RExC_state_t *pRExC_state
+Es     |regnode*|handle_sets   |NN struct RExC_state_t *pRExC_state \
+                               |NN I32 *flagp|U32 depth \
+                               |NN char * const oregcomp_parse
 Es     |regnode*|reg_node      |NN struct RExC_state_t *pRExC_state|U8 op
 Es     |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
@@ -1952,6 +1998,8 @@ Es        |U32    |join_exact     |NN struct RExC_state_t *pRExC_state \
                                |U32 flags|NULLOK regnode *val|U32 depth
 EsRn   |char * |regwhite       |NN struct RExC_state_t *pRExC_state \
                                |NN char *p
+EsRn   |char * |regpatws       |NN struct RExC_state_t *pRExC_state \
+                               |NN char *p|const bool recognize_comment
 Ei     |void   |alloc_maybe_populate_EXACT|NN struct RExC_state_t *pRExC_state \
                                |NN regnode *node|NN I32 *flagp|STRLEN len \
                                |UV code_point
@@ -1981,8 +2029,8 @@ Es        |I32    |study_chunk    |NN struct RExC_state_t *pRExC_state \
 EsRn   |U32    |add_data       |NN struct RExC_state_t *pRExC_state|U32 n \
                                |NN const char *s
 rs     |void   |re_croak2      |NN const char* pat1|NN const char* pat2|...
-Es     |I32    |regpposixcc    |NN struct RExC_state_t *pRExC_state \
-                               |I32 value|NULLOK SV *free_me
+Ei     |I32    |regpposixcc    |NN struct RExC_state_t *pRExC_state \
+                               |I32 value|NULLOK SV *free_me|const bool strict
 Es     |I32    |make_trie      |NN struct RExC_state_t *pRExC_state \
                                |NN regnode *startbranch|NN regnode *first \
                                |NN regnode *last|NN regnode *tail \
@@ -2013,25 +2061,32 @@ Es      |U8     |regtail_study  |NN struct RExC_state_t *pRExC_state \
 #endif
 
 #if defined(PERL_IN_REGEXEC_C)
+ERs    |bool   |isFOO_lc       |const U8 classnum|const U8 character
+ERs    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character
 ERs    |I32    |regmatch       |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-ERs    |I32    |regrepeat      |NN const regexp *prog|NN char **startposp|NN const regnode *p|I32 max|int depth
+ERs    |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
+                               |NN const regnode *p|I32 max|int depth \
+                               |bool is_utf8_pat
 ERs    |I32    |regtry         |NN regmatch_info *reginfo|NN char **startposp
-ERs    |bool   |reginclass     |NULLOK const regexp * const prog|NN const regnode * const n|NN const U8 * const p\
+ERs    |bool   |reginclass     |NULLOK regexp * const prog|NN const regnode * const n|NN const U8 * const p\
                                |bool const utf8_target
-Es     |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor
-Es     |void   |regcppop       |NN regexp *rex
+Es     |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
+                               |U32 maxopenparen
+Es     |void   |regcppop       |NN regexp *rex\
+                               |NN U32 *maxopenparen_p
 ERsn   |U8*    |reghop3        |NN U8 *s|I32 off|NN const U8 *lim
 ERsM   |SV*    |core_regclass_swash|NULLOK const regexp *prog \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp
-:not currently used EiR        |bool   |is_utf8_X_LV           |NN const U8 *p
-EiR    |bool   |is_utf8_X_LVT          |NN const U8 *p
 #ifdef XXX_dmq
 ERsn   |U8*    |reghop4        |NN U8 *s|I32 off|NN const U8 *llim \
                                |NN const U8 *rlim
 #endif
 ERsn   |U8*    |reghopmaybe3   |NN U8 *s|I32 off|NN const U8 *lim
-ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK regmatch_info *reginfo
+ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
+                               |NN char *s|NN const char *strend \
+                               |NULLOK regmatch_info *reginfo \
+                               |bool is_utf_pat
 Es     |void   |to_utf8_substr |NN regexp * prog
 Es     |bool   |to_byte_substr |NN regexp * prog
 ERs    |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
@@ -2217,9 +2272,9 @@ sn        |NV|mulexp10    |NV value|I32 exponent
 #endif
 
 #if defined(PERL_IN_UTF8_C)
-sRn    |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
+iRn    |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
 sRM    |UV     |check_locale_boundary_crossing|NN const U8* const p|const UV result|NN U8* const ustrp|NN STRLEN *lenp
-sR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
+iR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
 sR     |SV*    |swatch_get     |NN SV* swash|UV start|UV span
 #endif
 
@@ -2238,7 +2293,7 @@ Apd       |void   |sv_copypv_flags        |NN SV *const dsv|NN SV *const ssv|const I32 flags
 Ap     |char*  |my_atof2       |NN const char *s|NN NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 Ap     |int    |my_dirfd       |NULLOK DIR* dir
-#ifdef PERL_OLD_COPY_ON_WRITE
+#ifdef PERL_ANY_COW
 : Used in pp_hot.c and regexec.c
 pMXE   |SV*    |sv_setsv_cow   |NULLOK SV* dstr|NN SV* sstr
 #endif