This is a live mirror of the Perl 5 development currently hosted at
embed.fnc: Reorder the entries dealing with regexes
authorKarl Williamson <>
Mon, 24 Feb 2020 03:46:35 +0000 (20:46 -0700)
committerKarl Williamson <>
Mon, 2 Mar 2020 18:45:21 +0000 (11:45 -0700)
This moves a bunch of entries around so that they make more sense, and
consolidates some blocks that had the same #ifdefs.  There should be no
change in what gets compiled.


index 7812a98..bbba824 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -863,7 +863,7 @@ Apd |GV*    |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
                                |I32 autoload
 Apx    |GV*    |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
 Apx    |GV*    |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
-                               |U32 flags
+                               |U32 flags
 Apx    |GV*    |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
                                |const STRLEN len|U32 flags
 Ap     |GV*    |gv_fetchpv     |NN const char *nambeg|I32 add|const svtype sv_type
@@ -1007,9 +1007,6 @@ STR       |int    |is_utf8_cp_above_31_bits|NN const U8 * const s             \
                                         |const bool consider_overlongs
 #  endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-EXTp   |UV        |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
 #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
@@ -1094,7 +1091,7 @@ EXdpR     |bool   |isSCRIPT_RUN   |NN const U8 *s|NN const U8 *send   \
 : Used in perly.y
 p      |OP*    |jmaybe         |NN OP *o
-: Used in pp.c 
+: Used in pp.c
 pP     |I32    |keyword        |NN const char *name|I32 len|bool all_keywords
 #if defined(PERL_IN_OP_C)
 S      |void   |inplace_aassign        |NN OP* o
@@ -1144,43 +1141,6 @@ Ap       |void   |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
 : Used in perly.y
 p      |OP*    |localize       |NN OP *o|I32 lex
 ApdR   |I32    |looks_like_number|NN SV *const sv
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C)
-EpRX   |bool   |grok_bslash_x  |NN char** s                    \
-                               |NN const char* const send      \
-                               |NN UV* uv                      \
-                               |NN const char** message        \
-                               |NULLOK U32 * packed_warn       \
-                               |const bool strict              \
-                               |const bool allow_UV_MAX        \
-                               |const bool utf8
-EpRX   |bool   |grok_bslash_c  |const char source              \
-                               |NN U8 * result                 \
-                               |NN const char** message        \
-                               |NULLOK U32 * packed_warn
-EpRX   |bool   |grok_bslash_o  |NN char** s                    \
-                               |NN const char* const send      \
-                               |NN UV* uv                      \
-                               |NN const char** message        \
-                               |NULLOK U32 * packed_warn       \
-                               |const bool strict              \
-                               |const bool allow_UV_MAX        \
-                               |const bool utf8
-EpRX   |const char *|form_alien_digit_msg|const U8 which       \
-                               |const STRLEN valids_len        \
-                               |NN const char * const first_bad\
-                               |NN const char * const send     \
-                               |const bool UTF                 \
-                               |const bool braced
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EiRT   |bool   |regcurly       |NN const char *s
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_UTF8_C)
-EpRX   |const char *|form_cp_too_large_msg|const U8 which      \
-                               |NULLOK const char * string     \
-                               |const Size_t len               \
-                               |const UV cp
 AMpd   |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 Apd    |int    |grok_infnan    |NN const char** sp|NN const char *send
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
@@ -1530,7 +1490,7 @@ ApxT      |void   |thread_locale_term
 ApdO   |void   |require_pv     |NN const char* pv
 AbpdM  |void   |pack_cat       |NN SV *cat|NN const char *pat|NN const char *patend \
                                |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
-Apd    |void   |packlist       |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
+Apd    |void   |packlist       |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
 #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
 S      |void   |pidgone        |Pid_t pid|int status
@@ -1549,65 +1509,6 @@ ApMb     |OP*    |ref            |NULLOK OP* o|I32 type
 #if defined(PERL_IN_OP_C)
 S      |OP*    |refkids        |NULLOK OP* o|I32 type
-Ap     |void   |regdump        |NN const regexp* r
-CiTop  |struct regexp *|ReANY  |NN const REGEXP * const re
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-EXpR   |SV*    |_new_invlist_C_array|NN const UV* const list
-EXp    |bool   |_invlistEQ     |NN SV* const a|NN SV* const b|const bool complement_b
-Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
-                               |NN char* strend|NN char* strbeg \
-                               |SSize_t minend |NN SV* screamer|U32 nosave
-Ap     |void   |pregfree       |NULLOK REGEXP* r
-Ap     |void   |pregfree2      |NN REGEXP *rx
-: FIXME - is anything in re using this now?
-EXp    |REGEXP*|reg_temp_copy  |NULLOK REGEXP* dsv|NN REGEXP* ssv
-Ap     |void   |regfree_internal|NN REGEXP *const rx
-#if defined(USE_ITHREADS)
-Ap     |void*  |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
-EXp    |regexp_engine const *|current_re_engine
-Ap     |REGEXP*|pregcomp       |NN SV * const pattern|const U32 flags
-p      |REGEXP*|re_op_compile  |NULLOK SV ** const patternp \
-                               |int pat_count|NULLOK OP *expr \
-                               |NN const regexp_engine* eng \
-                               |NULLOK REGEXP *old_re \
-                               |NULLOK bool *is_bare_re \
-                               |const U32 rx_flags|const U32 pm_flags
-Ap     |REGEXP*|re_compile     |NN SV * const pattern|U32 orig_rx_flags
-Cp     |char*  |re_intuit_start|NN REGEXP * const rx \
-                               |NULLOK SV* sv \
-                               |NN const char* const strbeg \
-                               |NN char* strpos \
-                               |NN char* strend \
-                               |const U32 flags \
-                               |NULLOK re_scream_pos_data *data
-Cp     |SV*    |re_intuit_string|NN REGEXP  *const r
-Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
-                               |NN char *strend|NN char *strbeg \
-                               |SSize_t minend|NN SV *sv \
-                               |NULLOK void *data|U32 flags
-ApR    |regnode*|regnext       |NULLOK regnode* p
-EXp    |SV*|reg_named_buff          |NN REGEXP * const rx|NULLOK SV * const key \
-                                 |NULLOK SV * const value|const U32 flags
-EXp    |SV*|reg_named_buff_iter     |NN REGEXP * const rx|NULLOK const SV * const lastkey \
-                                 |const U32 flags
-Ap     |SV*|reg_named_buff_fetch    |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
-Ap     |bool|reg_named_buff_exists  |NN REGEXP * const rx|NN SV * const key|const U32 flags
-Ap     |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
-Ap     |SV*|reg_named_buff_nextkey  |NN REGEXP * const rx|const U32 flags
-Ap     |SV*|reg_named_buff_scalar   |NN REGEXP * const rx|const U32 flags
-Ap     |SV*|reg_named_buff_all      |NN REGEXP * const rx|const U32 flags
-: FIXME - is anything in re using this now?
-EXp    |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
-: FIXME - is anything in re using this now?
-EXp    |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
-: FIXME - is anything in re using this now?
-EXp    |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
-: FIXME - is anything in re using this now?
-EXp    |SV*|reg_qr_package|NN REGEXP * const rx
 ATp    |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|IV count
 AdTpP  |char*  |rninstr        |NN const char* big|NN const char* bigend \
@@ -1908,126 +1809,535 @@ Apd   |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
                                |NULLOK va_list *const args|NULLOK SV **const svargs \
                                |const Size_t sv_count|NULLOK bool *const maybe_tainted
 ApR    |NV     |str_to_version |NN SV *sv
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
-EiR    |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
-Ei     |void   |invlist_extend    |NN SV* const invlist|const UV len
-Ei     |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
-EiRT   |UV     |invlist_highest|NN SV* const invlist
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-EiRT   |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
-EiT    |void   |invlist_iterinit|NN SV* invlist
-EiRT   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EiT    |void   |invlist_iterfinish|NN SV* invlist
+Ap     |void   |regdump        |NN const regexp* r
+CiTop  |struct regexp *|ReANY  |NN const REGEXP * const re
+Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
+                               |NN char* strend|NN char* strbeg \
+                               |SSize_t minend |NN SV* screamer|U32 nosave
+Ap     |void   |pregfree       |NULLOK REGEXP* r
+Ap     |void   |pregfree2      |NN REGEXP *rx
+: FIXME - is anything in re using this now?
+EXp    |REGEXP*|reg_temp_copy  |NULLOK REGEXP* dsv|NN REGEXP* ssv
+Ap     |void   |regfree_internal|NN REGEXP *const rx
+#if defined(USE_ITHREADS)
+Ap     |void*  |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
+EXp    |regexp_engine const *|current_re_engine
+Ap     |REGEXP*|pregcomp       |NN SV * const pattern|const U32 flags
+p      |REGEXP*|re_op_compile  |NULLOK SV ** const patternp \
+                               |int pat_count|NULLOK OP *expr \
+                               |NN const regexp_engine* eng \
+                               |NULLOK REGEXP *old_re \
+                               |NULLOK bool *is_bare_re \
+                               |const U32 rx_flags|const U32 pm_flags
+Ap     |REGEXP*|re_compile     |NN SV * const pattern|U32 orig_rx_flags
+Cp     |char*  |re_intuit_start|NN REGEXP * const rx \
+                               |NULLOK SV* sv \
+                               |NN const char* const strbeg \
+                               |NN char* strpos \
+                               |NN char* strend \
+                               |const U32 flags \
+                               |NULLOK re_scream_pos_data *data
+Cp     |SV*    |re_intuit_string|NN REGEXP  *const r
+Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
+                               |NN char *strend|NN char *strbeg \
+                               |SSize_t minend|NN SV *sv \
+                               |NULLOK void *data|U32 flags
+ApR    |regnode*|regnext       |NULLOK regnode* p
+EXp    |SV*|reg_named_buff          |NN REGEXP * const rx|NULLOK SV * const key \
+                                 |NULLOK SV * const value|const U32 flags
+EXp    |SV*|reg_named_buff_iter     |NN REGEXP * const rx|NULLOK const SV * const lastkey \
+                                 |const U32 flags
+Ap     |SV*|reg_named_buff_fetch    |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
+Ap     |bool|reg_named_buff_exists  |NN REGEXP * const rx|NN SV * const key|const U32 flags
+Ap     |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
+Ap     |SV*|reg_named_buff_nextkey  |NN REGEXP * const rx|const U32 flags
+Ap     |SV*|reg_named_buff_scalar   |NN REGEXP * const rx|const U32 flags
+Ap     |SV*|reg_named_buff_all      |NN REGEXP * const rx|const U32 flags
+: FIXME - is anything in re using this now?
+EXp    |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
+: FIXME - is anything in re using this now?
+EXp    |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
+: FIXME - is anything in re using this now?
+EXp    |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
+: FIXME - is anything in re using this now?
+EXp    |SV*|reg_qr_package|NN REGEXP * const rx
 #if defined(PERL_IN_REGCOMP_C)
 ERS    |REGEXP*|re_op_compile_wrapper|NN SV * const pattern|U32 orig_rx_flags|const U32 pm_flags
 EiRT   |bool   |invlist_is_iterating|NN SV* const invlist
 EiR    |SV*    |invlist_contents|NN SV* const invlist              \
                                 |const bool traditional_style
 EixRT  |UV     |invlist_lowest|NN SV* const invlist
-ERS    |REGEXP*|compile_wildcard|NN const char * name|const STRLEN len     \
-                                |const bool ignore_case
-ES     |I32    |execute_wildcard|NN REGEXP * const prog|NN char* stringarg \
-                               |NN char* strend|NN char* strbeg \
-                               |SSize_t minend |NN SV* screamer|U32 nosave
-EiRT   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
-EiRT   |UV     |invlist_max    |NN SV* const invlist
-EiRT   |IV*    |get_invlist_previous_index_addr|NN SV* invlist
-EiT    |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
-EiRT   |IV     |invlist_previous_index|NN SV* const invlist
-EiT    |void   |invlist_trim   |NN SV* invlist
-Ei     |void   |invlist_clear  |NN SV* invlist
 ESRT   |bool   |new_regcurly   |NN const char *s|NN const char *e
 ERS    |SV*    |make_exactf_invlist    |NN RExC_state_t *pRExC_state \
                                        |NN regnode *node
-ES     |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
-ES     |void   |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
-S      |void   |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
-m      |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
-EXp    |void   |_invlist_intersection_maybe_complement_2nd \
-               |NULLOK SV* const a|NN SV* const b          \
-               |const bool complement_b|NN SV** i
-Cm     |void   |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
-EXp    |void   |_invlist_union_maybe_complement_2nd        \
-               |NULLOK SV* const a|NN SV* const b          \
-               |const bool complement_b|NN SV** output
-m      |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
-EXp    |void   |_invlist_invert|NN SV* const invlist
-EXpR   |SV*    |_new_invlist   |IV initial_size
-EXpR   |SV*    |_add_range_to_invlist  |NULLOK SV* invlist|UV start|UV end
-EXpR   |SV*    |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-EpX    |SV*    |invlist_clone  |NN SV* const invlist|NULLOK SV* newlist
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)   \
- || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)         \
- || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)             \
- || defined(PERL_IN_DOOP_C)
-EiRT   |UV*    |invlist_array  |NN SV* const invlist
-EiRT   |bool   |is_invlist     |NULLOK SV* const invlist
-EiRT   |bool*  |get_invlist_offset_addr|NN SV* invlist
-EiRT   |UV     |_invlist_len   |NN SV* const invlist
-EiRT   |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
-EXpRT  |SSize_t|_invlist_search        |NN SV* const invlist|const UV cp
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-EiT    |const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-EXp    |SV*    |_get_regclass_nonbitmap_data                              \
-                               |NULLOK const regexp *prog                 \
-                               |NN const struct regnode *node             \
-                               |bool doinit                               \
-                               |NULLOK SV **listsvp                       \
-                               |NULLOK SV **lonly_utf8_locale             \
-                               |NULLOK SV **output_invlist
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
-EXp    |void   |_invlist_dump  |NN PerlIO *file|I32 level   \
-                               |NN const char* const indent \
-                               |NN SV* const invlist
-Ap     |void   |taint_env
-Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
-EXp    |char * |_byte_dump_string                                      \
-                               |NN const U8 * const start              \
-                               |const STRLEN len                       \
-                               |const bool format
-#if defined(PERL_IN_UTF8_C)
-iTR    |int    |does_utf8_overflow|NN const U8 * const s               \
-                                  |NN const U8 * e                     \
-                                  |const bool consider_overlongs
-iTR    |int    |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s \
-                                                    |const STRLEN len
-iTR    |int    |isFF_OVERLONG  |NN const U8 * const s|const STRLEN len
-SR     |char * |unexpected_non_continuation_text                       \
-               |NN const U8 * const s                                  \
-               |STRLEN print_len                                       \
-               |const STRLEN non_cont_byte_pos                         \
-               |const STRLEN expect_len
-#if 0  /* Not currently used, but may be needed in the future */
-S      |void   |warn_on_first_deprecated_use                               \
-                               |NN const char * const name                 \
-                               |NN const char * const alternative          \
-                               |const bool use_locale                      \
-                               |NN const char * const file                 \
-                               |const unsigned line
-S      |UV     |_to_utf8_case  |const UV uv1                                   \
-                               |NULLOK const U8 *p                             \
-                               |NN U8* ustrp                                   \
-                               |NN STRLEN *lenp                                \
-                               |NN SV *invlist                                 \
-                               |NN const I32 * const invmap                    \
-                               |NULLOK const U32 * const * const aux_tables    \
+ES     |regnode_offset|reg     |NN RExC_state_t *pRExC_state \
+                               |I32 paren|NN I32 *flagp|U32 depth
+ES     |regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state          \
+                               |const U8 op                               \
+                               |const STRLEN extra_len                    \
+                               |NN const char* const name
+ES     |void   |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
+ES     |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
+                               |U32 arg
+ES     |regnode_offset|regpnode|NN RExC_state_t *pRExC_state|U8 op \
+                               |NN void * arg
+ES     |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state            \
+                               |const U8 op                               \
+                               |const U32 arg1                            \
+                               |const I32 arg2
+ES     |regnode_offset|regatom |NN RExC_state_t *pRExC_state \
+                               |NN I32 *flagp|U32 depth
+ES     |regnode_offset|regbranch       |NN RExC_state_t *pRExC_state \
+                               |NN I32 *flagp|I32 first|U32 depth
+ES     |void    |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
+                               |NN regnode* const node                    \
+                               |NULLOK SV* const cp_list                  \
+                               |NULLOK SV* const runtime_defns            \
+                               |NULLOK SV* const only_utf8_locale_list
+ES     |void   |output_posix_warnings                                      \
+                               |NN RExC_state_t *pRExC_state               \
+                               |NN AV* posix_warnings
+EiT    |Size_t  |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max
+ES     |AV*     |add_multi_match|NULLOK AV* multi_char_matches             \
+                               |NN SV* multi_string                        \
+                               |const STRLEN cp_count
+ES     |regnode_offset|regclass|NN RExC_state_t *pRExC_state                 \
+                               |NN I32 *flagp|U32 depth|const bool stop_at_1 \
+                               |bool allow_multi_fold                        \
+                               |const bool silence_non_portable              \
+                               |const bool strict                            \
+                               |bool optimizable                             \
+                               |NULLOK SV** ret_invlist
+ES     |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
+                               |NN SV** invlist
+Ei     |regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state   \
+                               |NN I32 *flagp                              \
+                               |NN char * parse_start                      \
+                               |char ch
+ESTR   |unsigned int|regex_set_precedence|const U8 my_operator
+ES     |regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \
+                               |NULLOK SV ** return_invlist            \
+                               |NN I32 *flagp|U32 depth                \
+                               |NN char * const oregcomp_parse
+ES     |void   |set_regex_pv   |NN RExC_state_t *pRExC_state|NN REGEXP *Rx
+ES     |void   |dump_regex_sets_structures                                 \
+                               |NN RExC_state_t *pRExC_state               \
+                               |NN AV * stack                              \
+                               |const IV fence|NN AV * fence_stack
+#  endif
+ES     |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
+ES     |regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op
+ES     |regnode_offset|regpiece|NN RExC_state_t *pRExC_state \
+                               |NN I32 *flagp|U32 depth
+ES     |bool   |grok_bslash_N  |NN RExC_state_t *pRExC_state               \
+                               |NULLOK regnode_offset* nodep               \
+                               |NULLOK UV *code_point_p                    \
+                               |NULLOK int* cp_count                       \
+                               |NN I32 *flagp                              \
+                               |const bool strict                          \
+                               |const U32 depth
+ES     |void   |reginsert      |NN RExC_state_t *pRExC_state \
+                               |const U8 op                                \
+                               |const regnode_offset operand               \
+                               |const U32 depth
+ESR    |bool   |regtail        |NN RExC_state_t * pRExC_state              \
+                               |NN const regnode_offset p                  \
+                               |NN const regnode_offset val                \
+                               |const U32 depth
+ES     |SV *   |reg_scan_name  |NN RExC_state_t *pRExC_state \
+                               |U32 flags
+ES     |U32    |join_exact     |NN RExC_state_t *pRExC_state \
+                               |NN regnode *scan|NN UV *min_subtract  \
+                               |NN bool *unfolded_multi_char          \
+                               |U32 flags|NULLOK regnode *val|U32 depth
+EiT    |U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
+ES     |void   |nextchar       |NN RExC_state_t *pRExC_state
+ES     |void   |skip_to_be_ignored_text|NN RExC_state_t *pRExC_state  \
+                               |NN char ** p                       \
+                               |const bool force_to_xmod
+EiT    |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
+ES     |void   |scan_commit    |NN const RExC_state_t *pRExC_state \
+                               |NN struct scan_data_t *data        \
+                               |NN SSize_t *minlenp                \
+                               |int is_inf
+ES     |void   |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
+ES     |void   |ssc_anything   |NN regnode_ssc *ssc
+ESRT   |int    |ssc_is_anything|NN const regnode_ssc *ssc
+ES     |void   |ssc_init       |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc
+ESRT   |int    |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_ssc *ssc
+ES     |void   |ssc_and        |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc                \
+                               |NN const regnode_charclass *and_with
+ES     |void   |ssc_or         |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc \
+                               |NN const regnode_charclass *or_with
+ES     |SV*    |get_ANYOF_cp_list_for_ssc                                 \
+                               |NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_charclass* const node
+Ei     |void   |ssc_intersection|NN regnode_ssc *ssc \
+                               |NN SV* const invlist|const bool invert_2nd
+Ei     |void   |ssc_union      |NN regnode_ssc *ssc \
+                               |NN SV* const invlist|const bool invert_2nd
+Ei     |void   |ssc_add_range  |NN regnode_ssc *ssc \
+                               |UV const start|UV const end
+Ei     |void   |ssc_cp_and     |NN regnode_ssc *ssc \
+                               |UV const cp
+EiT    |void   |ssc_clear_locale|NN regnode_ssc *ssc
+ETS    |bool   |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
+                               |NN const regnode_ssc * ssc
+ES     |void   |ssc_finalize   |NN RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc
+ES     |SSize_t|study_chunk    |NN RExC_state_t *pRExC_state \
+                               |NN regnode **scanp|NN SSize_t *minlenp \
+                               |NN SSize_t *deltap|NN regnode *last \
+                               |NULLOK struct scan_data_t *data \
+                                |I32 stopparen|U32 recursed_depth \
+                               |NULLOK regnode_ssc *and_withp \
+                               |U32 flags|U32 depth
+ESR    |SV *   |get_ANYOFM_contents|NN const regnode * n
+ESRT   |U32    |add_data       |NN RExC_state_t* const pRExC_state \
+                               |NN const char* const s|const U32 n
+frS    |void   |re_croak       |bool utf8|NN const char* pat|...
+ES     |int    |handle_possible_posix                                      \
+                               |NN RExC_state_t *pRExC_state               \
+                               |NN const char* const s                     \
+                               |NULLOK char ** updated_parse_ptr           \
+                               |NULLOK AV** posix_warnings                 \
+                               |const bool check_only
+ES     |I32    |make_trie      |NN RExC_state_t *pRExC_state \
+                               |NN regnode *startbranch|NN regnode *first \
+                               |NN regnode *last|NN regnode *tail \
+                               |U32 word_count|U32 flags|U32 depth
+ES     |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
+                                |NN regnode *source|U32 depth
+ETSR   |int    |edit_distance  |NN const UV *src                   \
+                               |NN const UV *tgt                   \
+                               |const STRLEN x                     \
+                               |const STRLEN y                     \
+                               |const SSize_t maxDistance
+EpX    |SV *   |parse_uniprop_string|NN const char * const name            \
+                                    |Size_t name_len                       \
+                                    |const bool is_utf8                    \
+                                    |const bool to_fold                    \
+                                    |const bool runtime                    \
+                                    |const bool deferrable                 \
+                                    |NN bool * user_defined_ptr            \
+                                    |NN SV * msg                           \
+                                    |const STRLEN level
+EXp    |SV *   |handle_user_defined_property|NN const char * name          \
+                                            |const STRLEN name_len         \
+                                            |const bool is_utf8            \
+                                            |const bool to_fold            \
+                                            |const bool runtime            \
+                                            |const bool deferrable         \
+                                            |NN SV* contents               \
+                                            |NN bool *user_defined_ptr     \
+                                            |NN SV * msg                   \
+                                            |const STRLEN level
+#  ifdef DEBUGGING
+EFp    |int    |re_indentf     |NN const char *fmt|U32 depth|...
+ES     |void        |regdump_intflags|NULLOK const char *lead| const U32 flags
+ES     |void   |regdump_extflags|NULLOK const char *lead| const U32 flags
+ES     |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
+                               |NN const regnode *node \
+                               |NULLOK const regnode *last \
+                               |NULLOK const regnode *plast \
+                               |NN SV* sv|I32 indent|U32 depth
+ES     |void   |put_code_point |NN SV* sv|UV c
+ES     |bool   |put_charclass_bitmap_innards|NN SV* sv             \
+                               |NULLOK char* bitmap                \
+                               |NULLOK SV* nonbitmap_invlist       \
+                               |NULLOK SV* only_utf8_locale_invlist\
+                               |NULLOK const regnode * const node  \
+                               |const U8 flags                     \
+                               |const bool force_as_is_display
+ES     |SV*    |put_charclass_bitmap_innards_common                \
+                               |NN SV* invlist                     \
+                               |NULLOK SV* posixes                 \
+                               |NULLOK SV* only_utf8               \
+                               |NULLOK SV* not_utf8                \
+                               |NULLOK SV* only_utf8_locale        \
+                               |const bool invert
+ES     |void   |put_charclass_bitmap_innards_invlist               \
+                               |NN SV *sv                          \
+                               |NN SV* invlist
+ES     |void   |put_range      |NN SV* sv|UV start|const UV end    \
+                               |const bool allow_literals
+ES     |void   |dump_trie      |NN const struct _reg_trie_data *trie\
+                               |NULLOK HV* widecharmap|NN AV *revcharmap\
+                               |U32 depth
+ES     |void   |dump_trie_interim_list|NN const struct _reg_trie_data *trie\
+                               |NULLOK HV* widecharmap|NN AV *revcharmap\
+                               |U32 next_alloc|U32 depth
+ES     |void   |dump_trie_interim_table|NN const struct _reg_trie_data *trie\
+                               |NULLOK HV* widecharmap|NN AV *revcharmap\
+                               |U32 next_alloc|U32 depth
+ESR    |bool   |regtail_study  |NN RExC_state_t *pRExC_state \
+                               |NN regnode_offset p|NN const regnode_offset val|U32 depth
+#  endif
+#  ifndef PERL_EXT_RE_BUILD
+ERS    |REGEXP*|compile_wildcard|NN const char * name|const STRLEN len     \
+                                |const bool ignore_case
+ES     |I32    |execute_wildcard|NN REGEXP * const prog|NN char* stringarg \
+                               |NN char* strend|NN char* strbeg \
+                               |SSize_t minend |NN SV* screamer|U32 nosave
+EiRT   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
+EiRT   |UV     |invlist_max    |NN SV* const invlist
+EiRT   |IV*    |get_invlist_previous_index_addr|NN SV* invlist
+EiT    |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
+EiRT   |IV     |invlist_previous_index|NN SV* const invlist
+EiT    |void   |invlist_trim   |NN SV* invlist
+Ei     |void   |invlist_clear  |NN SV* invlist
+ES     |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
+ES     |void   |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
+S      |void   |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
+#  endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
+EiR    |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
+Ei     |void   |invlist_extend    |NN SV* const invlist|const UV len
+Ei     |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
+EiRT   |UV     |invlist_highest|NN SV* const invlist
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
+m      |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
+EXp    |void   |_invlist_intersection_maybe_complement_2nd \
+               |NULLOK SV* const a|NN SV* const b          \
+               |const bool complement_b|NN SV** i
+Cm     |void   |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
+EXp    |void   |_invlist_union_maybe_complement_2nd        \
+               |NULLOK SV* const a|NN SV* const b          \
+               |const bool complement_b|NN SV** output
+m      |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+EXp    |void   |_invlist_invert|NN SV* const invlist
+EXpR   |SV*    |_new_invlist   |IV initial_size
+EXpR   |SV*    |_add_range_to_invlist  |NULLOK SV* invlist|UV start|UV end
+EXpR   |SV*    |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
+EpRX   |bool   |grok_bslash_x  |NN char** s                    \
+                               |NN const char* const send      \
+                               |NN UV* uv                      \
+                               |NN const char** message        \
+                               |NULLOK U32 * packed_warn       \
+                               |const bool strict              \
+                               |const bool allow_UV_MAX        \
+                               |const bool utf8
+EpRX   |bool   |grok_bslash_c  |const char source              \
+                               |NN U8 * result                 \
+                               |NN const char** message        \
+                               |NULLOK U32 * packed_warn
+EpRX   |bool   |grok_bslash_o  |NN char** s                    \
+                               |NN const char* const send      \
+                               |NN UV* uv                      \
+                               |NN const char** message        \
+                               |NULLOK U32 * packed_warn       \
+                               |const bool strict              \
+                               |const bool allow_UV_MAX        \
+                               |const bool utf8
+EpRX   |const char *|form_alien_digit_msg|const U8 which       \
+                               |const STRLEN valids_len        \
+                               |NN const char * const first_bad\
+                               |NN const char * const send     \
+                               |const bool UTF                 \
+                               |const bool braced
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
+EpRX   |const char *|form_cp_too_large_msg|const U8 which      \
+                               |NULLOK const char * string     \
+                               |const Size_t len               \
+                               |const UV cp
+#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
+EXp    |void   |_invlist_dump  |NN PerlIO *file|I32 level   \
+                               |NN const char* const indent \
+                               |NN SV* const invlist
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
+EiRT   |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
+EiT    |void   |invlist_iterinit|NN SV* invlist
+EiRT   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EiT    |void   |invlist_iterfinish|NN SV* invlist
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
+EXpR   |SV*    |_new_invlist_C_array|NN const UV* const list
+EXp    |bool   |_invlistEQ     |NN SV* const a|NN SV* const b|const bool complement_b
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+EiT    |const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)   \
+ || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)             \
+ || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)         \
+ || defined(PERL_IN_DOOP_C)
+EiRT   |UV*    |invlist_array  |NN SV* const invlist
+EiRT   |bool   |is_invlist     |NULLOK SV* const invlist
+EiRT   |bool*  |get_invlist_offset_addr|NN SV* invlist
+EiRT   |UV     |_invlist_len   |NN SV* const invlist
+EiRT   |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
+EXpRT  |SSize_t|_invlist_search        |NN SV* const invlist|const UV cp
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+EXp    |SV*    |_get_regclass_nonbitmap_data                              \
+                               |NULLOK const regexp *prog                 \
+                               |NN const struct regnode *node             \
+                               |bool doinit                               \
+                               |NULLOK SV **listsvp                       \
+                               |NULLOK SV **lonly_utf8_locale             \
+                               |NULLOK SV **output_invlist
+Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
+                               |NULLOK const RExC_state_t *pRExC_state
+Efp    |int    |re_printf      |NN const char *fmt|...
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
+ERp    |bool   |is_grapheme    |NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EXTp   |UV     |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
+EpX    |SV*    |invlist_clone  |NN SV* const invlist|NULLOK SV* newlist
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
+EiRT   |bool   |regcurly       |NN const char *s
+#if defined(PERL_IN_REGEXEC_C)
+ERS    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character|NN const U8* e
+ERTS   |U8 *   |find_next_masked|NN U8 * s                             \
+                                |NN const U8 * send                    \
+                                |const U8 byte|const U8 mask
+ERTS   |U8 *|find_span_end     |NN U8* s|NN const U8 * send|const U8 span_byte
+ERTS   |U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send   \
+                               |const U8 span_byte|const U8 mask
+ERS    |SSize_t|regmatch       |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
+WERS   |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
+                               |NN const regnode *p \
+                               |NN char *loceol                \
+                               |NN regmatch_info *const reginfo \
+                               |I32 max
+ERS    |bool   |regtry         |NN regmatch_info *reginfo|NN char **startposp
+ERS    |bool   |reginclass     |NULLOK regexp * const prog  \
+                               |NN const regnode * const n  \
+                               |NN const U8 * const p       \
+                               |NN const U8 * const p_end   \
+                               |bool const utf8_target
+WES    |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
+                               |U32 maxopenparen
+WES    |void   |regcppop       |NN regexp *rex|NN U32 *maxopenparen_p
+WES    |void   |regcp_restore  |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
+ERST   |U8*    |reghop3        |NN U8 *s|SSize_t off|NN const U8 *lim
+ERST   |U8*    |reghop4        |NN U8 *s|SSize_t off|NN const U8 *llim \
+                               |NN const U8 *rlim
+ERST   |U8*    |reghopmaybe3   |NN U8 *s|SSize_t off|NN const U8 * const lim
+ERS    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
+                               |NN char *s|NN const char *strend \
+                               |NULLOK regmatch_info *reginfo
+ES     |void   |to_utf8_substr |NN regexp * prog
+ES     |bool   |to_byte_substr |NN regexp * prog
+ERST   |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
+                                               |NN const regnode *scan
+ESR    |bool   |isGCB          |const GCB_enum before                  \
+                               |const GCB_enum after                   \
+                               |NN const U8 * const strbeg             \
+                               |NN const U8 * const curpos             \
+                               |const bool utf8_target
+ESR    |GCB_enum|backup_one_GCB|NN const U8 * const strbeg                     \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
+ESR    |bool   |isLB           |LB_enum before                         \
+                               |LB_enum after                          \
+                               |NN const U8 * const strbeg             \
+                               |NN const U8 * const curpos             \
+                               |NN const U8 * const strend             \
+                               |const bool utf8_target
+ESR    |LB_enum|advance_one_LB |NN U8 ** curpos                                \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+ESR    |LB_enum|backup_one_LB  |NN const U8 * const strbeg                     \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
+ESR    |bool   |isSB           |SB_enum before                         \
+                               |SB_enum after                          \
+                               |NN const U8 * const strbeg                     \
+                               |NN const U8 * const curpos                     \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+ESR    |SB_enum|advance_one_SB |NN U8 ** curpos                                \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+ESR    |SB_enum|backup_one_SB  |NN const U8 * const strbeg                     \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
+ESR    |bool   |isWB           |WB_enum previous                               \
+                               |WB_enum before                         \
+                               |WB_enum after                          \
+                               |NN const U8 * const strbeg                     \
+                               |NN const U8 * const curpos                     \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+ESR    |WB_enum|advance_one_WB |NN U8 ** curpos                                \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target                         \
+                               |const bool skip_Extend_Format
+ESR    |WB_enum|backup_one_WB  |NN WB_enum * previous                  \
+                               |NN const U8 * const strbeg                     \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
+EiT    |I32    |foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len
+#  ifdef DEBUGGING
+ES     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
+                               |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth
+ES     |void   |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
+                               |NN const char *start|NN const char *end\
+                               |NN const char *blurb
+EFp    |int    |re_exec_indentf|NN const char *fmt|U32 depth|...
+#  endif
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EXRp   |bool   |isFOO_lc       |const U8 classnum|const U8 character
+Ap     |void   |taint_env
+Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
+EXp    |char * |_byte_dump_string                                      \
+                               |NN const U8 * const start              \
+                               |const STRLEN len                       \
+                               |const bool format
+#if defined(PERL_IN_UTF8_C)
+iTR    |int    |does_utf8_overflow|NN const U8 * const s               \
+                                  |NN const U8 * e                     \
+                                  |const bool consider_overlongs
+iTR    |int    |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s \
+                                                    |const STRLEN len
+iTR    |int    |isFF_OVERLONG  |NN const U8 * const s|const STRLEN len
+SR     |char * |unexpected_non_continuation_text                       \
+               |NN const U8 * const s                                  \
+               |STRLEN print_len                                       \
+               |const STRLEN non_cont_byte_pos                         \
+               |const STRLEN expect_len
+#if 0  /* Not currently used, but may be needed in the future */
+S      |void   |warn_on_first_deprecated_use                               \
+                               |NN const char * const name                 \
+                               |NN const char * const alternative          \
+                               |const bool use_locale                      \
+                               |NN const char * const file                 \
+                               |const unsigned line
+S      |UV     |_to_utf8_case  |const UV uv1                                   \
+                               |NULLOK const U8 *p                             \
+                               |NN U8* ustrp                                   \
+                               |NN STRLEN *lenp                                \
+                               |NN SV *invlist                                 \
+                               |NN const I32 * const invmap                    \
+                               |NULLOK const U32 * const * const aux_tables    \
                                |NULLOK const U8 * const aux_table_lengths      \
                                |NN const char * const normal
 S      |UV     |turkic_fc      |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
@@ -2235,12 +2545,12 @@ Apd     |char*  |pv_display     |NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \
 Apd    |char*  |pv_escape      |NULLOK SV *dsv|NN char const * const str\
                                 |const STRLEN count|const STRLEN max\
                                 |NULLOK STRLEN * const escaped\
-                                |const U32 flags                               
+                                |const U32 flags
 Apd    |char*  |pv_pretty      |NN SV *dsv|NN char const * const str\
                                 |const STRLEN count|const STRLEN max\
                                 |NULLOK char const * const start_color\
                                 |NULLOK char const * const end_color\
-                                |const U32 flags                               
+                                |const U32 flags
 Afp    |void   |dump_indent    |I32 level|NN PerlIO *file|NN const char* pat|...
 Ap     |void   |dump_vindent   |I32 level|NN PerlIO *file|NN const char* pat \
                                |NULLOK va_list *args
@@ -2378,527 +2688,209 @@ S     |bool|gv_is_in_main|NN const char *name|STRLEN len \
                       |const U32 is_utf8
 S      |void   |require_tie_mod|NN GV *gv|NN const char varname \
                                |NN const char * name|STRLEN len \
-                               |const U32 flags
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-po     |SV*    |hfree_next_entry       |NN HV *hv|NN STRLEN *indexp
-#if defined(PERL_IN_HV_C)
-S      |void   |hsplit         |NN HV *hv|STRLEN const oldsize|STRLEN newsize
-S      |void   |hv_free_entries|NN HV *hv
-S      |SV*    |hv_free_ent_ret|NN HV *hv|NN HE *entry
-SR     |HE*    |new_he
-SaTR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
-ST     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
-S      |void   |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
-SR     |HEK*   |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
-rS     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
-iT     |U32|ptr_hash|PTRV u
-S      |struct xpvhv_aux*|hv_auxinit|NN HV *hv
-ST     |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter
-Sx     |SV*    |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
-               |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
-               |U32 hash
-Sx     |void   |clear_placeholders     |NN HV *hv|U32 items
-#if defined(PERL_IN_MG_C)
-S      |void   |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
-S      |int    |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth
-S      |SV*    |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
-                               |NN SV *meth|U32 flags \
-                               |int n|NULLOK SV *val
-S      |void   |restore_magic  |NULLOK const void *p
-S      |void   |unwind_handler_stack|NULLOK const void *p
-S      |void   |fixup_errno_string|NN SV* sv
-#if defined(PERL_IN_OP_C)
-SRT    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
-SR     |I32    |assignment_type|NULLOK const OP *o
-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
-S      |OP*    |scalarboolean  |NN OP *o
-SR     |OP*    |search_const   |NN OP *o
-SR     |OP*    |new_logop      |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
-S      |void   |simplify_sort  |NN OP *o
-SRT    |bool   |scalar_mod_type|NULLOK const OP *o|I32 type
-S      |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
-S      |OP *   |dup_attrlist   |NN OP *o
-S      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs
-S      |void   |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-S      |void   |bad_type_pv    |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
-S      |void   |bad_type_gv    |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
-S      |void   |no_bareword_allowed|NN OP *o
-SR     |OP*    |no_fh_allowed|NN OP *o
-SR     |OP*    |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
-S      |OP*    |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
-S      |bool   |looks_like_bool|NN const OP* o
-S      |OP*    |newGIVWHENOP   |NULLOK OP* cond|NN OP *block \
-                               |I32 enter_opcode|I32 leave_opcode \
-                               |PADOFFSET entertarg
-S      |OP*    |ref_array_or_hash|NULLOK OP* cond
-S      |bool   |process_special_blocks |I32 floor \
-                                       |NN const char *const fullname\
-                                       |NN GV *const gv|NN CV *const cv
-S      |void   |clear_special_blocks   |NN const char *const fullname\
-                                       |NN GV *const gv|NN CV *const cv
-XpR    |void*  |Slab_Alloc     |size_t sz
-Xp     |void   |Slab_Free      |NN void *op
-#    if defined(PERL_CORE)
-pe     |void   |Slab_to_ro     |NN OPSLAB *slab
-pe     |void   |Slab_to_rw     |NN OPSLAB *const slab
-#    endif
-: Used in OpREFCNT_inc() in sv.c
-poex   |OP *   |op_refcnt_inc  |NULLOK OP *o
-: FIXME - can be static.
-poex   |PADOFFSET      |op_refcnt_dec  |NN OP *o
-#if defined(PERL_IN_PERL_C)
-S      |void   |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
-S      |void   |forbid_setid   |const char flag|const bool suidscript
-S      |void   |incpush        |NN const char *const dir|STRLEN len \
-                               |U32 flags
-S      |SV*    |mayberelocate  |NN const char *const dir|STRLEN len \
-                               |U32 flags
-S      |void   |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
-S      |void   |init_interp
-S      |void   |init_ids
-S      |void   |init_main_stash
-S      |void   |init_perllib
-S      |void   |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
-S      |void   |init_predump_symbols
-rS     |void   |my_exit_jump
-S      |void   |nuke_stacks
-S      |PerlIO *|open_script   |NN const char *scriptname|bool dosearch \
-                               |NN bool *suidscript
-Sr     |void   |usage
-So     |void   |validate_suid  |NN PerlIO *rsfp
-Sr     |void   |minus_v
-S      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
-rS     |void   |run_body       |I32 oldscope
-S      |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
-#  endif
-#if defined(PERL_IN_PP_C)
-S      |size_t |do_chomp       |NN SV *retval|NN SV *sv|bool chomping
-S      |OP*    |do_delete_local
-SR     |SV*    |refto          |NN SV* sv
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-: Used in pp_hot.c
-pReo   |GV*    |softref2xv     |NN SV *const sv|NN const char *const what \
-                               |const svtype type|NN SV ***spp
-iTR    |bool   |lossless_NV_to_IV|const NV nv|NN IV * ivp
-#if defined(PERL_IN_PP_PACK_C)
-S      |SSize_t|unpack_rec     |NN struct tempsym* symptr|NN const char *s \
-                               |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
-S      |SV **  |pack_rec       |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
-S      |SV*    |mul128         |NN SV *sv|U8 m
-S      |SSize_t|measure_struct |NN struct tempsym* symptr
-S      |bool   |next_symbol    |NN struct tempsym* symptr
-SR     |SV*    |is_an_int      |NN const char *s|STRLEN l
-S      |int    |div128         |NN SV *pnum|NN bool *done
-S      |const char *|group_end |NN const char *patptr|NN const char *patend \
-                               |char ender
-SR     |const char *|get_num   |NN const char *patptr|NN SSize_t *lenptr
-TS     |bool   |need_utf8      |NN const char *pat|NN const char *patend
-TS     |char   |first_symbol   |NN const char *pat|NN const char *patend
-SR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
-STR    |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
-                               |const bool needs_swap
-#if defined(PERL_IN_PP_CTL_C)
-SdR    |OP*    |docatch        |Perl_ppaddr_t firstpp
-SR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|STRLEN len \
-                                |U32 flags|NN OP **opstack|NN OP **oplimit
-S      |MAGIC *|doparseform    |NN SV *sv
-STR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
-SR     |I32    |dopoptoeval    |I32 startingblock
-SR     |I32    |dopoptogivenfor|I32 startingblock
-SR     |I32    |dopoptolabel   |NN const char *label|STRLEN len|U32 flags
-SR     |I32    |dopoptoloop    |I32 startingblock
-SR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
-SR     |I32    |dopoptowhen    |I32 startingblock
-S      |void   |save_lines     |NULLOK AV *array|NN SV *sv
-S      |bool   |doeval_compile |U8 gimme \
-                               |NULLOK CV* outside|U32 seq|NULLOK HV* hh
-SR     |PerlIO *|check_type_and_open|NN SV *name
-SR     |PerlIO *|doopen_pm     |NN SV *name
-iRT    |bool   |path_is_searchable|NN const char *name
-SR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
-SR     |PMOP*  |make_matcher   |NN REGEXP* re
-SR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
-S      |void   |destroy_matcher|NN PMOP* matcher
-S      |OP*    |do_smartmatch  |NULLOK HV* seen_this \
-                               |NULLOK HV* seen_other|const bool copied
-#if defined(PERL_IN_PP_HOT_C)
-S      |void   |do_oddball     |NN SV **oddkey|NN SV **firstkey
-i      |HV*    |opmethod_stash |NN SV* meth
+                               |const U32 flags
-#if defined(PERL_IN_PP_SORT_C)
-S      |I32    |sv_ncmp        |NN SV *const a|NN SV *const b
-S      |I32    |sv_i_ncmp      |NN SV *const a|NN SV *const b
-S      |I32    |amagic_ncmp    |NN SV *const a|NN SV *const b
-S      |I32    |amagic_i_ncmp  |NN SV *const a|NN SV *const b
-S      |I32    |amagic_cmp     |NN SV *const str1|NN SV *const str2
-S      |I32    |amagic_cmp_locale|NN SV *const str1|NN SV *const str2
-#  endif
-S      |I32    |sortcv         |NN SV *const a|NN SV *const b
-S      |I32    |sortcv_xsub    |NN SV *const a|NN SV *const b
-S      |I32    |sortcv_stacked |NN SV *const a|NN SV *const b
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+po     |SV*    |hfree_next_entry       |NN HV *hv|NN STRLEN *indexp
-#if defined(PERL_IN_PP_SYS_C)
-S      |OP*    |doform         |NN CV *cv|NN GV *gv|NULLOK OP *retop
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-SR     |int    |dooneliner     |NN const char *cmd|NN const char *filename
-#  endif
-S      |SV *   |space_join_names_mortal|NULLOK char *const *array
+#if defined(PERL_IN_HV_C)
+S      |void   |hsplit         |NN HV *hv|STRLEN const oldsize|STRLEN newsize
+S      |void   |hv_free_entries|NN HV *hv
+S      |SV*    |hv_free_ent_ret|NN HV *hv|NN HE *entry
+SR     |HE*    |new_he
+SaTR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
+ST     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
+S      |void   |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
+SR     |HEK*   |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
+rS     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
+iT     |U32|ptr_hash|PTRV u
+S      |struct xpvhv_aux*|hv_auxinit|NN HV *hv
+ST     |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter
+Sx     |SV*    |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
+               |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
+               |U32 hash
+Sx     |void   |clear_placeholders     |NN HV *hv|U32 items
-Fp     |OP *   |tied_method|NN SV *methname|NN SV **sp \
-                               |NN SV *const sv|NN const MAGIC *const mg \
-                               |const U32 flags|U32 argc|...
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
-                               |NULLOK const RExC_state_t *pRExC_state
-Efp    |int    |re_printf      |NN const char *fmt|...
-#if defined(PERL_IN_REGCOMP_C)
-ES     |regnode_offset|reg     |NN RExC_state_t *pRExC_state \
-                               |I32 paren|NN I32 *flagp|U32 depth
-ES     |regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state          \
-                               |const U8 op                               \
-                               |const STRLEN extra_len                    \
-                               |NN const char* const name
-ES     |void   |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
-ES     |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
-                               |U32 arg
-ES     |regnode_offset|regpnode|NN RExC_state_t *pRExC_state|U8 op \
-                               |NN void * arg
-ES     |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state            \
-                               |const U8 op                               \
-                               |const U32 arg1                            \
-                               |const I32 arg2
-ES     |regnode_offset|regatom |NN RExC_state_t *pRExC_state \
-                               |NN I32 *flagp|U32 depth
-ES     |regnode_offset|regbranch       |NN RExC_state_t *pRExC_state \
-                               |NN I32 *flagp|I32 first|U32 depth
-ES     |void    |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
-                               |NN regnode* const node                    \
-                               |NULLOK SV* const cp_list                  \
-                               |NULLOK SV* const runtime_defns            \
-                               |NULLOK SV* const only_utf8_locale_list
-ES     |void   |output_posix_warnings                                      \
-                               |NN RExC_state_t *pRExC_state               \
-                               |NN AV* posix_warnings
-EiT    |Size_t  |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max
-ES     |AV*     |add_multi_match|NULLOK AV* multi_char_matches             \
-                               |NN SV* multi_string                        \
-                               |const STRLEN cp_count
-ES     |regnode_offset|regclass|NN RExC_state_t *pRExC_state                 \
-                               |NN I32 *flagp|U32 depth|const bool stop_at_1 \
-                               |bool allow_multi_fold                        \
-                               |const bool silence_non_portable              \
-                               |const bool strict                            \
-                               |bool optimizable                             \
-                               |NULLOK SV** ret_invlist
-ES     |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
-                               |NN SV** invlist
-Ei     |regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state   \
-                               |NN I32 *flagp                              \
-                               |NN char * parse_start                      \
-                               |char ch
-ESTR   |unsigned int|regex_set_precedence|const U8 my_operator
-ES     |regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \
-                               |NULLOK SV ** return_invlist            \
-                               |NN I32 *flagp|U32 depth                \
-                               |NN char * const oregcomp_parse
-ES     |void   |set_regex_pv   |NN RExC_state_t *pRExC_state|NN REGEXP *Rx
-ES     |void   |dump_regex_sets_structures                                 \
-                               |NN RExC_state_t *pRExC_state               \
-                               |NN AV * stack                              \
-                               |const IV fence|NN AV * fence_stack
-ES     |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
-ES     |regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op
-ES     |regnode_offset|regpiece|NN RExC_state_t *pRExC_state \
-                               |NN I32 *flagp|U32 depth
-ES     |bool   |grok_bslash_N  |NN RExC_state_t *pRExC_state               \
-                               |NULLOK regnode_offset* nodep               \
-                               |NULLOK UV *code_point_p                    \
-                               |NULLOK int* cp_count                       \
-                               |NN I32 *flagp                              \
-                               |const bool strict                          \
-                               |const U32 depth
-ES     |void   |reginsert      |NN RExC_state_t *pRExC_state \
-                               |const U8 op                                \
-                               |const regnode_offset operand               \
-                               |const U32 depth
-ESR    |bool   |regtail        |NN RExC_state_t * pRExC_state              \
-                               |NN const regnode_offset p                  \
-                               |NN const regnode_offset val                \
-                               |const U32 depth
-ES     |SV *   |reg_scan_name  |NN RExC_state_t *pRExC_state \
-                               |U32 flags
-ES     |U32    |join_exact     |NN RExC_state_t *pRExC_state \
-                               |NN regnode *scan|NN UV *min_subtract  \
-                               |NN bool *unfolded_multi_char          \
-                               |U32 flags|NULLOK regnode *val|U32 depth
-EiT    |U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
-ES     |void   |nextchar       |NN RExC_state_t *pRExC_state
-ES     |void   |skip_to_be_ignored_text|NN RExC_state_t *pRExC_state  \
-                               |NN char ** p                       \
-                               |const bool force_to_xmod
-EiT    |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
-ES     |void   |scan_commit    |NN const RExC_state_t *pRExC_state \
-                               |NN struct scan_data_t *data        \
-                               |NN SSize_t *minlenp                \
-                               |int is_inf
-ES     |void   |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
-ES     |void   |ssc_anything   |NN regnode_ssc *ssc
-ESRT   |int    |ssc_is_anything|NN const regnode_ssc *ssc
-ES     |void   |ssc_init       |NN const RExC_state_t *pRExC_state \
-                               |NN regnode_ssc *ssc
-ESRT   |int    |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
-                               |NN const regnode_ssc *ssc
-ES     |void   |ssc_and        |NN const RExC_state_t *pRExC_state \
-                               |NN regnode_ssc *ssc                \
-                               |NN const regnode_charclass *and_with
-ES     |void   |ssc_or         |NN const RExC_state_t *pRExC_state \
-                               |NN regnode_ssc *ssc \
-                               |NN const regnode_charclass *or_with
-ES     |SV*    |get_ANYOF_cp_list_for_ssc                                 \
-                               |NN const RExC_state_t *pRExC_state \
-                               |NN const regnode_charclass* const node
-Ei     |void   |ssc_intersection|NN regnode_ssc *ssc \
-                               |NN SV* const invlist|const bool invert_2nd
-Ei     |void   |ssc_union      |NN regnode_ssc *ssc \
-                               |NN SV* const invlist|const bool invert_2nd
-Ei     |void   |ssc_add_range  |NN regnode_ssc *ssc \
-                               |UV const start|UV const end
-Ei     |void   |ssc_cp_and     |NN regnode_ssc *ssc \
-                               |UV const cp
-EiT    |void   |ssc_clear_locale|NN regnode_ssc *ssc
-ETS    |bool   |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
-                               |NN const regnode_ssc * ssc
-ES     |void   |ssc_finalize   |NN RExC_state_t *pRExC_state \
-                               |NN regnode_ssc *ssc
-ES     |SSize_t|study_chunk    |NN RExC_state_t *pRExC_state \
-                               |NN regnode **scanp|NN SSize_t *minlenp \
-                               |NN SSize_t *deltap|NN regnode *last \
-                               |NULLOK struct scan_data_t *data \
-                                |I32 stopparen|U32 recursed_depth \
-                               |NULLOK regnode_ssc *and_withp \
-                               |U32 flags|U32 depth
-ESR    |SV *   |get_ANYOFM_contents|NN const regnode * n
-ESRT   |U32    |add_data       |NN RExC_state_t* const pRExC_state \
-                               |NN const char* const s|const U32 n
-frS    |void   |re_croak       |bool utf8|NN const char* pat|...
-ES     |int    |handle_possible_posix                                      \
-                               |NN RExC_state_t *pRExC_state               \
-                               |NN const char* const s                     \
-                               |NULLOK char ** updated_parse_ptr           \
-                               |NULLOK AV** posix_warnings                 \
-                               |const bool check_only
-ES     |I32    |make_trie      |NN RExC_state_t *pRExC_state \
-                               |NN regnode *startbranch|NN regnode *first \
-                               |NN regnode *last|NN regnode *tail \
-                               |U32 word_count|U32 flags|U32 depth
-ES     |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
-                                |NN regnode *source|U32 depth
-ETSR   |int    |edit_distance  |NN const UV *src                   \
-                               |NN const UV *tgt                   \
-                               |const STRLEN x                     \
-                               |const STRLEN y                     \
-                               |const SSize_t maxDistance
-EpX    |SV *   |parse_uniprop_string|NN const char * const name            \
-                                    |Size_t name_len                       \
-                                    |const bool is_utf8                    \
-                                    |const bool to_fold                    \
-                                    |const bool runtime                    \
-                                    |const bool deferrable                 \
-                                    |NN bool * user_defined_ptr            \
-                                    |NN SV * msg                           \
-                                    |const STRLEN level
-EXp    |SV *   |handle_user_defined_property|NN const char * name          \
-                                            |const STRLEN name_len         \
-                                            |const bool is_utf8            \
-                                            |const bool to_fold            \
-                                            |const bool runtime            \
-                                            |const bool deferrable         \
-                                            |NN SV* contents               \
-                                            |NN bool *user_defined_ptr     \
-                                            |NN SV * msg                   \
-                                            |const STRLEN level
-#  ifdef DEBUGGING
-EFp    |int    |re_indentf     |NN const char *fmt|U32 depth|...
-ES     |void        |regdump_intflags|NULLOK const char *lead| const U32 flags
-ES     |void   |regdump_extflags|NULLOK const char *lead| const U32 flags
-ES     |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
-                               |NN const regnode *node \
-                               |NULLOK const regnode *last \
-                               |NULLOK const regnode *plast \
-                               |NN SV* sv|I32 indent|U32 depth
-ES     |void   |put_code_point |NN SV* sv|UV c
-ES     |bool   |put_charclass_bitmap_innards|NN SV* sv             \
-                               |NULLOK char* bitmap                \
-                               |NULLOK SV* nonbitmap_invlist       \
-                               |NULLOK SV* only_utf8_locale_invlist\
-                               |NULLOK const regnode * const node  \
-                               |const U8 flags                     \
-                               |const bool force_as_is_display
-ES     |SV*    |put_charclass_bitmap_innards_common                \
-                               |NN SV* invlist                     \
-                               |NULLOK SV* posixes                 \
-                               |NULLOK SV* only_utf8               \
-                               |NULLOK SV* not_utf8                \
-                               |NULLOK SV* only_utf8_locale        \
-                               |const bool invert
-ES     |void   |put_charclass_bitmap_innards_invlist               \
-                               |NN SV *sv                          \
-                               |NN SV* invlist
-ES     |void   |put_range      |NN SV* sv|UV start|const UV end    \
-                               |const bool allow_literals
-ES     |void   |dump_trie      |NN const struct _reg_trie_data *trie\
-                               |NULLOK HV* widecharmap|NN AV *revcharmap\
-                               |U32 depth
-ES     |void   |dump_trie_interim_list|NN const struct _reg_trie_data *trie\
-                               |NULLOK HV* widecharmap|NN AV *revcharmap\
-                               |U32 next_alloc|U32 depth
-ES     |void   |dump_trie_interim_table|NN const struct _reg_trie_data *trie\
-                               |NULLOK HV* widecharmap|NN AV *revcharmap\
-                               |U32 next_alloc|U32 depth
-ESR    |bool   |regtail_study  |NN RExC_state_t *pRExC_state \
-                               |NN regnode_offset p|NN const regnode_offset val|U32 depth
+#if defined(PERL_IN_MG_C)
+S      |void   |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
+S      |int    |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth
+S      |SV*    |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
+                               |NN SV *meth|U32 flags \
+                               |int n|NULLOK SV *val
+S      |void   |restore_magic  |NULLOK const void *p
+S      |void   |unwind_handler_stack|NULLOK const void *p
+S      |void   |fixup_errno_string|NN SV* sv
+#if defined(PERL_IN_OP_C)
+SRT    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
+SR     |I32    |assignment_type|NULLOK const OP *o
+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
+S      |OP*    |scalarboolean  |NN OP *o
+SR     |OP*    |search_const   |NN OP *o
+SR     |OP*    |new_logop      |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
+S      |void   |simplify_sort  |NN OP *o
+SRT    |bool   |scalar_mod_type|NULLOK const OP *o|I32 type
+S      |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
+S      |OP *   |dup_attrlist   |NN OP *o
+S      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs
+S      |void   |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
+S      |void   |bad_type_pv    |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
+S      |void   |bad_type_gv    |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
+S      |void   |no_bareword_allowed|NN OP *o
+SR     |OP*    |no_fh_allowed|NN OP *o
+SR     |OP*    |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
+S      |OP*    |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
+S      |bool   |looks_like_bool|NN const OP* o
+S      |OP*    |newGIVWHENOP   |NULLOK OP* cond|NN OP *block \
+                               |I32 enter_opcode|I32 leave_opcode \
+                               |PADOFFSET entertarg
+S      |OP*    |ref_array_or_hash|NULLOK OP* cond
+S      |bool   |process_special_blocks |I32 floor \
+                                       |NN const char *const fullname\
+                                       |NN GV *const gv|NN CV *const cv
+S      |void   |clear_special_blocks   |NN const char *const fullname\
+                                       |NN GV *const gv|NN CV *const cv
+XpR    |void*  |Slab_Alloc     |size_t sz
+Xp     |void   |Slab_Free      |NN void *op
+#    if defined(PERL_CORE)
+pe     |void   |Slab_to_ro     |NN OPSLAB *slab
+pe     |void   |Slab_to_rw     |NN OPSLAB *const slab
+#    endif
+: Used in OpREFCNT_inc() in sv.c
+poex   |OP *   |op_refcnt_inc  |NULLOK OP *o
+: FIXME - can be static.
+poex   |PADOFFSET      |op_refcnt_dec  |NN OP *o
+#if defined(PERL_IN_PERL_C)
+S      |void   |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
+S      |void   |forbid_setid   |const char flag|const bool suidscript
+S      |void   |incpush        |NN const char *const dir|STRLEN len \
+                               |U32 flags
+S      |SV*    |mayberelocate  |NN const char *const dir|STRLEN len \
+                               |U32 flags
+S      |void   |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
+S      |void   |init_interp
+S      |void   |init_ids
+S      |void   |init_main_stash
+S      |void   |init_perllib
+S      |void   |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
+S      |void   |init_predump_symbols
+rS     |void   |my_exit_jump
+S      |void   |nuke_stacks
+S      |PerlIO *|open_script   |NN const char *scriptname|bool dosearch \
+                               |NN bool *suidscript
+Sr     |void   |usage
+So     |void   |validate_suid  |NN PerlIO *rsfp
+Sr     |void   |minus_v
+S      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
+rS     |void   |run_body       |I32 oldscope
+S      |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
 #  endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-EXRp   |bool   |isFOO_lc       |const U8 classnum|const U8 character
+#if defined(PERL_IN_PP_C)
+S      |size_t |do_chomp       |NN SV *retval|NN SV *sv|bool chomping
+S      |OP*    |do_delete_local
+SR     |SV*    |refto          |NN SV* sv
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+: Used in pp_hot.c
+pReo   |GV*    |softref2xv     |NN SV *const sv|NN const char *const what \
+                               |const svtype type|NN SV ***spp
+iTR    |bool   |lossless_NV_to_IV|const NV nv|NN IV * ivp
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-ERp    |bool   |is_grapheme    |NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp
+#if defined(PERL_IN_PP_PACK_C)
+S      |SSize_t|unpack_rec     |NN struct tempsym* symptr|NN const char *s \
+                               |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
+S      |SV **  |pack_rec       |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
+S      |SV*    |mul128         |NN SV *sv|U8 m
+S      |SSize_t|measure_struct |NN struct tempsym* symptr
+S      |bool   |next_symbol    |NN struct tempsym* symptr
+SR     |SV*    |is_an_int      |NN const char *s|STRLEN l
+S      |int    |div128         |NN SV *pnum|NN bool *done
+S      |const char *|group_end |NN const char *patptr|NN const char *patend \
+                               |char ender
+SR     |const char *|get_num   |NN const char *patptr|NN SSize_t *lenptr
+TS     |bool   |need_utf8      |NN const char *pat|NN const char *patend
+TS     |char   |first_symbol   |NN const char *pat|NN const char *patend
+SR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
+STR    |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
+                               |const bool needs_swap
-#if defined(PERL_IN_REGEXEC_C)
-ERS    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character|NN const U8* e
-ERTS   |U8 *   |find_next_masked|NN U8 * s                             \
-                                |NN const U8 * send                    \
-                                |const U8 byte|const U8 mask
-ERTS   |U8 *|find_span_end     |NN U8* s|NN const U8 * send|const U8 span_byte
-ERTS   |U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send   \
-                               |const U8 span_byte|const U8 mask
-ERS    |SSize_t|regmatch       |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-WERS   |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
-                               |NN const regnode *p \
-                               |NN char *loceol                \
-                               |NN regmatch_info *const reginfo \
-                               |I32 max
-ERS    |bool   |regtry         |NN regmatch_info *reginfo|NN char **startposp
-ERS    |bool   |reginclass     |NULLOK regexp * const prog  \
-                               |NN const regnode * const n  \
-                               |NN const U8 * const p       \
-                               |NN const U8 * const p_end   \
-                               |bool const utf8_target
-WES    |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
-                               |U32 maxopenparen
-WES    |void   |regcppop       |NN regexp *rex|NN U32 *maxopenparen_p
-WES    |void   |regcp_restore  |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
-ERST   |U8*    |reghop3        |NN U8 *s|SSize_t off|NN const U8 *lim
-ERST   |U8*    |reghop4        |NN U8 *s|SSize_t off|NN const U8 *llim \
-                               |NN const U8 *rlim
-ERST   |U8*    |reghopmaybe3   |NN U8 *s|SSize_t off|NN const U8 * const lim
-ERS    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
-                               |NN char *s|NN const char *strend \
-                               |NULLOK regmatch_info *reginfo
-ES     |void   |to_utf8_substr |NN regexp * prog
-ES     |bool   |to_byte_substr |NN regexp * prog
-ERST   |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
-                                               |NN const regnode *scan
-ESR    |bool   |isGCB          |const GCB_enum before                  \
-                               |const GCB_enum after                   \
-                               |NN const U8 * const strbeg             \
-                               |NN const U8 * const curpos             \
-                               |const bool utf8_target
-ESR    |GCB_enum|backup_one_GCB|NN const U8 * const strbeg                     \
-                               |NN U8 ** curpos                                \
-                               |const bool utf8_target
-ESR    |bool   |isLB           |LB_enum before                         \
-                               |LB_enum after                          \
-                               |NN const U8 * const strbeg             \
-                               |NN const U8 * const curpos             \
-                               |NN const U8 * const strend             \
-                               |const bool utf8_target
-ESR    |LB_enum|advance_one_LB |NN U8 ** curpos                                \
-                               |NN const U8 * const strend                     \
-                               |const bool utf8_target
-ESR    |LB_enum|backup_one_LB  |NN const U8 * const strbeg                     \
-                               |NN U8 ** curpos                                \
-                               |const bool utf8_target
-ESR    |bool   |isSB           |SB_enum before                         \
-                               |SB_enum after                          \
-                               |NN const U8 * const strbeg                     \
-                               |NN const U8 * const curpos                     \
-                               |NN const U8 * const strend                     \
-                               |const bool utf8_target
-ESR    |SB_enum|advance_one_SB |NN U8 ** curpos                                \
-                               |NN const U8 * const strend                     \
-                               |const bool utf8_target
-ESR    |SB_enum|backup_one_SB  |NN const U8 * const strbeg                     \
-                               |NN U8 ** curpos                                \
-                               |const bool utf8_target
-ESR    |bool   |isWB           |WB_enum previous                               \
-                               |WB_enum before                         \
-                               |WB_enum after                          \
-                               |NN const U8 * const strbeg                     \
-                               |NN const U8 * const curpos                     \
-                               |NN const U8 * const strend                     \
-                               |const bool utf8_target
-ESR    |WB_enum|advance_one_WB |NN U8 ** curpos                                \
-                               |NN const U8 * const strend                     \
-                               |const bool utf8_target                         \
-                               |const bool skip_Extend_Format
-ESR    |WB_enum|backup_one_WB  |NN WB_enum * previous                  \
-                               |NN const U8 * const strbeg                     \
-                               |NN U8 ** curpos                                \
-                               |const bool utf8_target
-EiT    |I32    |foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len
-#  ifdef DEBUGGING
-ES     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
-                               |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth
-ES     |void   |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
-                               |NN const char *start|NN const char *end\
-                               |NN const char *blurb
+#if defined(PERL_IN_PP_CTL_C)
+SdR    |OP*    |docatch        |Perl_ppaddr_t firstpp
+SR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|STRLEN len \
+                                |U32 flags|NN OP **opstack|NN OP **oplimit
+S      |MAGIC *|doparseform    |NN SV *sv
+STR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
+SR     |I32    |dopoptoeval    |I32 startingblock
+SR     |I32    |dopoptogivenfor|I32 startingblock
+SR     |I32    |dopoptolabel   |NN const char *label|STRLEN len|U32 flags
+SR     |I32    |dopoptoloop    |I32 startingblock
+SR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
+SR     |I32    |dopoptowhen    |I32 startingblock
+S      |void   |save_lines     |NULLOK AV *array|NN SV *sv
+S      |bool   |doeval_compile |U8 gimme \
+                               |NULLOK CV* outside|U32 seq|NULLOK HV* hh
+SR     |PerlIO *|check_type_and_open|NN SV *name
+SR     |PerlIO *|doopen_pm     |NN SV *name
+iRT    |bool   |path_is_searchable|NN const char *name
+SR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
+SR     |PMOP*  |make_matcher   |NN REGEXP* re
+SR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
+S      |void   |destroy_matcher|NN PMOP* matcher
+S      |OP*    |do_smartmatch  |NULLOK HV* seen_this \
+                               |NULLOK HV* seen_other|const bool copied
-EFp    |int    |re_exec_indentf|NN const char *fmt|U32 depth|...
+#if defined(PERL_IN_PP_HOT_C)
+S      |void   |do_oddball     |NN SV **oddkey|NN SV **firstkey
+i      |HV*    |opmethod_stash |NN SV* meth
+#if defined(PERL_IN_PP_SORT_C)
+S      |I32    |sv_ncmp        |NN SV *const a|NN SV *const b
+S      |I32    |sv_i_ncmp      |NN SV *const a|NN SV *const b
+S      |I32    |amagic_ncmp    |NN SV *const a|NN SV *const b
+S      |I32    |amagic_i_ncmp  |NN SV *const a|NN SV *const b
+S      |I32    |amagic_cmp     |NN SV *const str1|NN SV *const str2
+S      |I32    |amagic_cmp_locale|NN SV *const str1|NN SV *const str2
+#  endif
+S      |I32    |sortcv         |NN SV *const a|NN SV *const b
+S      |I32    |sortcv_xsub    |NN SV *const a|NN SV *const b
+S      |I32    |sortcv_stacked |NN SV *const a|NN SV *const b
+#if defined(PERL_IN_PP_SYS_C)
+S      |OP*    |doform         |NN CV *cv|NN GV *gv|NULLOK OP *retop
+#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+SR     |int    |dooneliner     |NN const char *cmd|NN const char *filename
 #  endif
+S      |SV *   |space_join_names_mortal|NULLOK char *const *array
+Fp     |OP *   |tied_method|NN SV *methname|NN SV **sp \
+                               |NN SV *const sv|NN const MAGIC *const mg \
+                               |const U32 flags|U32 argc|...
 #if defined(PERL_IN_DUMP_C)
 S      |CV*    |deb_curcv      |I32 ix
diff --git a/embed.h b/embed.h
index 3315325..f10fb7a 100644 (file)
--- a/embed.h
+++ b/embed.h
 #  if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
 #define gv_stashsvpvn_cached(a,b,c,d)  Perl_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
 #  endif
-#  if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-#define get_regex_charset_name S_get_regex_charset_name
-#  endif
 #  if defined(PERL_IN_REGCOMP_C)
 #define add_above_Latin1_folds(a,b,c)  S_add_above_Latin1_folds(aTHX_ a,b,c)
 #define add_data               S_add_data
 #  if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
 #define _invlist_dump(a,b,c,d) Perl__invlist_dump(aTHX_ a,b,c,d)
 #  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
+#define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
+#define invlist_extend(a,b)    S_invlist_extend(aTHX_ a,b)
+#define invlist_highest                S_invlist_highest
+#define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
+#  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
+#define _add_range_to_invlist(a,b,c)   Perl__add_range_to_invlist(aTHX_ a,b,c)
+#define _invlist_intersection_maybe_complement_2nd(a,b,c,d)    Perl__invlist_intersection_maybe_complement_2nd(aTHX_ a,b,c,d)
+#define _invlist_invert(a)     Perl__invlist_invert(aTHX_ a)
+#define _invlist_union_maybe_complement_2nd(a,b,c,d)   Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
+#define _new_invlist(a)                Perl__new_invlist(aTHX_ a)
+#define _setup_canned_invlist(a,b,c)   Perl__setup_canned_invlist(aTHX_ a,b,c)
+#  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
+#define form_alien_digit_msg(a,b,c,d,e,f)      Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
+#define grok_bslash_c(a,b,c,d) Perl_grok_bslash_c(aTHX_ a,b,c,d)
+#define grok_bslash_o(a,b,c,d,e,f,g,h) Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
+#define grok_bslash_x(a,b,c,d,e,f,g,h) Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
+#  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
+#define form_cp_too_large_msg(a,b,c,d) Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
+#  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
 #define get_invlist_iter_addr  S_get_invlist_iter_addr
 #define invlist_iterfinish     S_invlist_iterfinish
 #define invlist_iterinit       S_invlist_iterinit
 #define invlist_iternext       S_invlist_iternext
 #  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
-#define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
-#define invlist_extend(a,b)    S_invlist_extend(aTHX_ a,b)
-#define invlist_highest                S_invlist_highest
-#define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
-#  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
 #define _invlistEQ(a,b,c)      Perl__invlistEQ(aTHX_ a,b,c)
 #define _new_invlist_C_array(a)        Perl__new_invlist_C_array(aTHX_ a)
 #  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+#define get_regex_charset_name S_get_regex_charset_name
+#  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 #define _get_regclass_nonbitmap_data(a,b,c,d,e,f)      Perl__get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
 #define regprop(a,b,c,d,e)     Perl_regprop(aTHX_ a,b,c,d,e)
 #  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)  || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)           || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)               || defined(PERL_IN_DOOP_C)
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)  || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)               || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)           || defined(PERL_IN_DOOP_C)
 #define _invlist_contains_cp   S__invlist_contains_cp
 #define _invlist_len           S__invlist_len
 #define _invlist_search                Perl__invlist_search
 #define invlist_array          S_invlist_array
 #define is_invlist             S_is_invlist
 #  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
+#define is_grapheme(a,b,c,d)   Perl_is_grapheme(aTHX_ a,b,c,d)
+#  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+#define _to_fold_latin1                Perl__to_fold_latin1
+#  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
 #define invlist_clone(a,b)     Perl_invlist_clone(aTHX_ a,b)
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
 #define regcurly               S_regcurly
 #  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C)
-#define form_alien_digit_msg(a,b,c,d,e,f)      Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
-#define grok_bslash_c(a,b,c,d) Perl_grok_bslash_c(aTHX_ a,b,c,d)
-#define grok_bslash_o(a,b,c,d,e,f,g,h) Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
-#define grok_bslash_x(a,b,c,d,e,f,g,h) Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_UTF8_C)
-#define form_cp_too_large_msg(a,b,c,d) Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
-#define _add_range_to_invlist(a,b,c)   Perl__add_range_to_invlist(aTHX_ a,b,c)
-#define _invlist_intersection_maybe_complement_2nd(a,b,c,d)    Perl__invlist_intersection_maybe_complement_2nd(aTHX_ a,b,c,d)
-#define _invlist_invert(a)     Perl__invlist_invert(aTHX_ a)
-#define _invlist_union_maybe_complement_2nd(a,b,c,d)   Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
-#define _new_invlist(a)                Perl__new_invlist(aTHX_ a)
-#define _setup_canned_invlist(a,b,c)   Perl__setup_canned_invlist(aTHX_ a,b,c)
-#  endif
 #  if defined(PERL_IN_REGEXEC_C)
 #define advance_one_LB(a,b,c)  S_advance_one_LB(aTHX_ a,b,c)
 #define advance_one_SB(a,b,c)  S_advance_one_SB(aTHX_ a,b,c)
 #define to_byte_substr(a)      S_to_byte_substr(aTHX_ a)
 #define to_utf8_substr(a)      S_to_utf8_substr(aTHX_ a)
 #  endif
-#  if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#define is_grapheme(a,b,c,d)   Perl_is_grapheme(aTHX_ a,b,c,d)
-#  endif
 #  if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
 #define isFOO_lc(a,b)          Perl_isFOO_lc(aTHX_ a,b)
 #  endif
-#  if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define _to_fold_latin1                Perl__to_fold_latin1
-#  endif
 #ifdef PERL_CORE
 #define PerlLIO_dup2_cloexec(a,b)      Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
diff --git a/proto.h b/proto.h
index 3653063..581e5cd 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -5382,13 +5382,6 @@ PERL_CALLCONV GV*        Perl_softref2xv(pTHX_ SV *const sv, const char *const what, co
        assert(sv); assert(what); assert(spp)
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-PERL_STATIC_INLINE const char *        S_get_regex_charset_name(const U32 flags, STRLEN* const lenp);
-       assert(lenp)
 #if defined(PERL_IN_PP_CTL_C)
 STATIC PerlIO *        S_check_type_and_open(pTHX_ SV *name)
@@ -5818,56 +5811,114 @@ PERL_CALLCONV void     Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char*
        assert(file); assert(indent); assert(invlist)
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
-PERL_STATIC_INLINE STRLEN*     S_get_invlist_iter_addr(SV* invlist)
+PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
-       assert(invlist)
-PERL_STATIC_INLINE void        S_invlist_iterfinish(SV* invlist);
+PERL_STATIC_INLINE void        S_invlist_extend(pTHX_ SV* const invlist, const UV len);
-PERL_STATIC_INLINE void        S_invlist_iterinit(SV* invlist);
+PERL_STATIC_INLINE UV  S_invlist_highest(SV* const invlist)
+                       __attribute__warn_unused_result__;
-PERL_STATIC_INLINE bool        S_invlist_iternext(SV* invlist, UV* start, UV* end)
+PERL_STATIC_INLINE void        S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset);
+       assert(invlist)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV SV*      Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
-       assert(invlist); assert(start); assert(end)
+/* PERL_CALLCONV void  _invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i); */
+PERL_CALLCONV void     Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** i);
+       assert(b); assert(i)
+PERL_CALLCONV void     Perl__invlist_invert(pTHX_ SV* const invlist);
+       assert(invlist)
+/* PERL_CALLCONV void  _invlist_subtract(pTHX_ SV* const a, SV* const b, SV** result); */
+/* PERL_CALLCONV void  _invlist_union(pTHX_ SV* const a, SV* const b, SV** output); */
+PERL_CALLCONV void     Perl__invlist_union_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** output);
+       assert(b); assert(output)
+PERL_CALLCONV SV*      Perl__new_invlist(pTHX_ IV initial_size)
+                       __attribute__warn_unused_result__;
+PERL_CALLCONV SV*      Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV** other_elements_ptr)
+                       __attribute__warn_unused_result__;
+       assert(other_elements_ptr)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
+PERL_CALLCONV const char *     Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced)
+                       __attribute__warn_unused_result__;
+       assert(first_bad); assert(send)
+PERL_CALLCONV bool     Perl_grok_bslash_c(pTHX_ const char source, U8 * result, const char** message, U32 * packed_warn)
+                       __attribute__warn_unused_result__;
+       assert(result); assert(message)
+PERL_CALLCONV bool     Perl_grok_bslash_o(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
+                       __attribute__warn_unused_result__;
+       assert(s); assert(send); assert(uv); assert(message)
+PERL_CALLCONV bool     Perl_grok_bslash_x(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
+                       __attribute__warn_unused_result__;
+       assert(s); assert(send); assert(uv); assert(message)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV const char *     Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char * string, const Size_t len, const UV cp)
+                       __attribute__warn_unused_result__;
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
+PERL_STATIC_INLINE STRLEN*     S_get_invlist_iter_addr(SV* invlist)
+       assert(invlist)
-PERL_STATIC_INLINE void        S_invlist_extend(pTHX_ SV* const invlist, const UV len);
+PERL_STATIC_INLINE void        S_invlist_iterfinish(SV* invlist);
-PERL_STATIC_INLINE UV  S_invlist_highest(SV* const invlist)
-                       __attribute__warn_unused_result__;
+PERL_STATIC_INLINE void        S_invlist_iterinit(SV* invlist);
-PERL_STATIC_INLINE void        S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset);
-       assert(invlist)
+PERL_STATIC_INLINE bool        S_invlist_iternext(SV* invlist, UV* start, UV* end)
+                       __attribute__warn_unused_result__;
+       assert(invlist); assert(start); assert(end)
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
 PERL_CALLCONV bool     Perl__invlistEQ(pTHX_ SV* const a, SV* const b, const bool complement_b);
@@ -5879,6 +5930,13 @@ PERL_CALLCONV SV*        Perl__new_invlist_C_array(pTHX_ const UV* const list)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+PERL_STATIC_INLINE const char *        S_get_regex_charset_name(const U32 flags, STRLEN* const lenp);
+       assert(lenp)
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 PERL_CALLCONV SV*      Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist);
@@ -5892,7 +5950,7 @@ PERL_CALLCONV void        Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode*
        assert(sv); assert(o)
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)    || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)           || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)               || defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)    || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)               || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)           || defined(PERL_IN_DOOP_C)
 PERL_STATIC_INLINE bool        S__invlist_contains_cp(SV* const invlist, const UV cp)
@@ -5933,6 +5991,18 @@ PERL_STATIC_INLINE bool  S_is_invlist(SV* const invlist)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
+PERL_CALLCONV bool     Perl_is_grapheme(pTHX_ const U8 * strbeg, const U8 * s, const U8 *strend, const UV cp)
+                       __attribute__warn_unused_result__;
+       assert(strbeg); assert(s); assert(strend)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV UV       Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags);
+       assert(p); assert(lenp)
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
 PERL_CALLCONV SV*      Perl_invlist_clone(pTHX_ SV* const invlist, SV* newlist);
@@ -5947,64 +6017,6 @@ PERL_STATIC_INLINE bool  S_regcurly(const char *s)
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C)
-PERL_CALLCONV const char *     Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced)
-                       __attribute__warn_unused_result__;
-       assert(first_bad); assert(send)
-PERL_CALLCONV bool     Perl_grok_bslash_c(pTHX_ const char source, U8 * result, const char** message, U32 * packed_warn)
-                       __attribute__warn_unused_result__;
-       assert(result); assert(message)
-PERL_CALLCONV bool     Perl_grok_bslash_o(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
-                       __attribute__warn_unused_result__;
-       assert(s); assert(send); assert(uv); assert(message)
-PERL_CALLCONV bool     Perl_grok_bslash_x(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
-                       __attribute__warn_unused_result__;
-       assert(s); assert(send); assert(uv); assert(message)
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV const char *     Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char * string, const Size_t len, const UV cp)
-                       __attribute__warn_unused_result__;
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
-PERL_CALLCONV SV*      Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
-                       __attribute__warn_unused_result__;
-/* PERL_CALLCONV void  _invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i); */
-PERL_CALLCONV void     Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** i);
-       assert(b); assert(i)
-PERL_CALLCONV void     Perl__invlist_invert(pTHX_ SV* const invlist);
-       assert(invlist)
-/* PERL_CALLCONV void  _invlist_subtract(pTHX_ SV* const a, SV* const b, SV** result); */
-/* PERL_CALLCONV void  _invlist_union(pTHX_ SV* const a, SV* const b, SV** output); */
-PERL_CALLCONV void     Perl__invlist_union_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** output);
-       assert(b); assert(output)
-PERL_CALLCONV SV*      Perl__new_invlist(pTHX_ IV initial_size)
-                       __attribute__warn_unused_result__;
-PERL_CALLCONV SV*      Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV** other_elements_ptr)
-                       __attribute__warn_unused_result__;
-       assert(other_elements_ptr)
 #if defined(PERL_IN_REGEXEC_C)
 STATIC LB_enum S_advance_one_LB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
@@ -6147,13 +6159,6 @@ STATIC void      S_to_utf8_substr(pTHX_ regexp * prog);
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV bool     Perl_is_grapheme(pTHX_ const U8 * strbeg, const U8 * s, const U8 *strend, const UV cp)
-                       __attribute__warn_unused_result__;
-       assert(strbeg); assert(s); assert(strend)
 #if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
 PERL_CALLCONV bool     Perl_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
@@ -6480,11 +6485,6 @@ PERL_CALLCONV UV Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *le
        assert(p); assert(lenp)
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV UV       Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags);
-       assert(p); assert(lenp)
 #if defined(PERL_IN_UTIL_C)
 STATIC bool    S_ckwarn_common(pTHX_ U32 w);