This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
(toke|regcomp).c: Use common fcn to handle \0 problems
[perl5.git] / embed.fnc
index 53e5e05..a4079b7 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 : This has had to be done with things like MAX and MIN, but nearly everything
 : else has been created without regard to the namespace pollution problem.
 :
+: Here's what else you need to know about using this file with regards to name
+: space pollution:
+:
+: The A flag is used to make a function and its short name visible everywhere
+:           on all platforms.  This should be used to make it part of Perl's
+:           API contract with XS developers.  The documentation for these is
+:           usually placed in perlapi.  If no documentation exists, that fact
+:           is also noted in perlapi.
+:
+: The C flag is used instead for functions and their short names that need to
+:            be accessible everywhere, typically because they are called from a
+:            publicly available macro or inline function, but they are not for
+:            public use by themselves.  The documentation for these is placed
+:            in perlintern.  If no documentation exists, that fact is also
+:            noted in perlintern.
+:
+:            These really need the 'p' flag to avoid name space collisions.
+:
+:           Some of these have been constructed so that the wrapper macro
+:           names begin with an underscore to lessen the chances of a name
+:           collision.  However, this is contrary to the C standard, and those
+:           should be changed.
+:
+: The E flag is used instead for a function and its short name that is supposed
+:            to be used only in the core, and in extensions compiled with the
+:            PERL_EXT symbol defined.  Again, on some platforms, the function
+:            will be visible everywhere, so the 'p' flag is generally needed.
+:            Also note that an XS writer can always cheat and pretend to be an
+:            extension by #defining PERL_EXT.
+:
+: The X flag is similar to the C flag in that the function (whose entry better
+:           have the 'p' flag) is accessible everywhere on all platforms.
+:           However the short name macro that normally gets generated is
+:           suppressed outside the core.  (Except it is also visible in
+:           PERL_EXT extensions if the E flag is also specified.)  This flag
+:           is used for functions that are called from a public macro, the
+:           name of which isn't derived from the function name.  You'll have
+:           to write the macro yourself, and from within it, refer to the
+:           function in its full 'Perl_' form with any necessary thread
+:           context parameter.
 :
 : Scattered around the perl source are lines of the form:
 :
 :         proto.h: function is declared as PERL_STATIC_INLINE
 :
 :   m  Implemented as a macro; there is no function associated with this name,
-:      and hence no long Perl_ or S_ name.
+:      and hence no long Perl_ or S_ name.  However, if the macro name itself
+:      begins with 'Perl_', autodoc.pl will show a thread context parameter
+:      unless the 'T' flag is specified.
 :
 :         suppress proto.h entry (actually, not suppressed, but commented out)
 :         suppress entry in the list of exported symbols available on all platforms
@@ -572,6 +614,8 @@ Apd |void   |cv_undef       |NN CV* cv
 p      |void   |cv_undef_flags |NN CV* cv|U32 flags
 pd     |void   |cv_forget_slab |NULLOK CV *cv
 Ap     |void   |cx_dump        |NN PERL_CONTEXT* cx
+AiMp   |GV *   |CvGV           |NN CV *sv
+AiMTp  |I32 *  |CvDEPTH        |NN const CV * const sv
 Aphd   |SV*    |filter_add     |NULLOK filter_t funcp|NULLOK SV* datasv
 Ap     |void   |filter_del     |NN filter_t funcp
 ApRhd  |I32    |filter_read    |int idx|NN SV *buf_sv|int maxlen
@@ -617,7 +661,7 @@ Ap  |bool   |do_close       |NULLOK GV* gv|bool not_implicit
 p      |bool   |do_eof         |NN GV* gv
 
 #ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-pm     |bool|do_exec   |NN const char* cmd
+pM     |bool|do_exec   |NN const char* cmd
 #else
 p      |bool|do_exec   |NN const char* cmd
 #endif
@@ -836,9 +880,11 @@ Xxpd       |void   |gv_try_downgrade|NN GV* gv
 p      |void   |gv_setref      |NN SV *const dstr|NN SV *const sstr
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
 Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
+#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
+EpG    |HV*    |gv_stashsvpvn_cached   |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
+#endif
 #if defined(PERL_IN_GV_C)
 i      |HV*    |gv_stashpvn_internal   |NN const char* name|U32 namelen|I32 flags
-iG     |HV*    |gv_stashsvpvn_cached   |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
 i      |GV*    |gv_fetchmeth_internal  |NULLOK HV* stash|NULLOK SV* meth|NULLOK const char* name \
                                        |STRLEN len|I32 level|U32 flags
 #endif
@@ -940,28 +986,8 @@ ApR        |I32    |is_lvalue_sub
 : Used in cop.h
 XopR   |I32    |was_lvalue_sub
 CpRTP  |STRLEN |is_utf8_char_helper|NN const U8 * const s|NN const U8 * e|const U32 flags
-CbDpR  |U32    |to_uni_upper_lc|U32 c
-CbDpR  |U32    |to_uni_title_lc|U32 c
-CbDpR  |U32    |to_uni_lower_lc|U32 c
-CbDpR  |bool   |is_uni_alnum   |UV c
-CbDpR  |bool   |is_uni_alnumc  |UV c
-CbDpR  |bool   |is_uni_idfirst |UV c
-CbDpR  |bool   |is_uni_alpha   |UV c
-CbDpPR |bool   |is_uni_ascii   |UV c
-CbDpPR |bool   |is_uni_blank   |UV c
-CbDpPR |bool   |is_uni_space   |UV c
-CbDpPR |bool   |is_uni_cntrl   |UV c
-CbDpR  |bool   |is_uni_graph   |UV c
-CbDpR  |bool   |is_uni_digit   |UV c
-CbDpR  |bool   |is_uni_upper   |UV c
-CbDpR  |bool   |is_uni_lower   |UV c
-CbDpR  |bool   |is_uni_print   |UV c
-CbDpR  |bool   |is_uni_punct   |UV c
-CbDpPR |bool   |is_uni_xdigit  |UV c
 Cp     |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 Cp     |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
-CbDpR  |bool   |isIDFIRST_lazy |NN const char* p
-CbDpR  |bool   |isALNUM_lazy   |NN const char* p
 p      |void   |init_uniprops
 #ifdef PERL_IN_UTF8_C
 STR    |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp  \
@@ -979,25 +1005,10 @@ EXTp     |UV        |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsig
 p      |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
 #endif
 Cp     |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
-Cmp    |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
+Cm     |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
 Cp     |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
-CbDpR  |bool   |is_uni_alnum_lc|UV c
-CbDpR  |bool   |is_uni_alnumc_lc|UV c
-CbDpR  |bool   |is_uni_idfirst_lc|UV c
 CpR    |bool   |_is_uni_perl_idcont|UV c
 CpR    |bool   |_is_uni_perl_idstart|UV c
-CbDpR  |bool   |is_uni_alpha_lc|UV c
-CbDpPR |bool   |is_uni_ascii_lc|UV c
-CbDpPR |bool   |is_uni_space_lc|UV c
-CbDpPR |bool   |is_uni_blank_lc|UV c
-CbDpPR |bool   |is_uni_cntrl_lc|UV c
-CbDpR  |bool   |is_uni_graph_lc|UV c
-CbDpR  |bool   |is_uni_digit_lc|UV c
-CbDpR  |bool   |is_uni_upper_lc|UV c
-CbDpR  |bool   |is_uni_lower_lc|UV c
-CbDpR  |bool   |is_uni_print_lc|UV c
-CbDpR  |bool   |is_uni_punct_lc|UV c
-CbDpPR |bool   |is_uni_xdigit_lc|UV c
 ATdmoR |bool   |is_utf8_invariant_string|NN const U8* const s              \
                |STRLEN len
 ATidRp |bool   |is_utf8_invariant_string_loc|NN const U8* const s          \
@@ -1013,7 +1024,7 @@ EiTRd     |Size_t |variant_under_utf8_count|NN const U8* const s              \
 AmTdRP |bool   |is_ascii_string|NN const U8* const s|STRLEN len
 AmTdRP |bool   |is_invariant_string|NN const U8* const s|STRLEN len
 #if defined(PERL_CORE) || defined (PERL_EXT)
-EXTidR |bool   |is_utf8_non_invariant_string|NN const U8* const s          \
+EXTidRp        |bool   |is_utf8_non_invariant_string|NN const U8* const s          \
                |STRLEN len
 #endif
 AbTpdD |STRLEN |is_utf8_char   |NN const U8 *s
@@ -1062,45 +1073,12 @@ AmTdP   |bool   |is_utf8_valid_partial_char                                 \
                |NN const U8 * const s|NN const U8 * const e
 ATidRp |bool   |is_utf8_valid_partial_char_flags                           \
                |NN const U8 * const s|NN const U8 * const e|const U32 flags
-CpR    |bool   |_is_uni_FOO|const U8 classnum|const UV c
-CpR    |bool   |_is_utf8_FOO|U8 classnum|NN const U8 * const p             \
-               |NN const char * const name                                 \
-               |NN const char * const alternative                          \
-               |const bool use_utf8|const bool use_locale                  \
-               |NN const char * const file|const unsigned line
-CpR    |bool   |_is_utf8_FOO_with_len|const U8 classnum|NN const U8 *p     \
-               |NN const U8 * const e
-CbDpR  |bool   |is_utf8_alnum  |NN const U8 *p
-CbDpR  |bool   |is_utf8_alnumc |NN const U8 *p
-CbDpR  |bool   |is_utf8_idfirst|NN const U8 *p
-CbDpR  |bool   |is_utf8_xidfirst|NN const U8 *p
-CpR    |bool   |_is_utf8_idcont|NN const U8 *p
-CpR    |bool   |_is_utf8_idstart|NN const U8 *p
-CpR    |bool   |_is_utf8_xidcont|NN const U8 *p
-CpR    |bool   |_is_utf8_xidstart|NN const U8 *p
-CpR    |bool   |_is_utf8_perl_idcont_with_len|NN const U8 *p               \
-               |NN const U8 * const e
-CpR    |bool   |_is_utf8_perl_idstart_with_len|NN const U8 *p              \
+CpR     |bool   |_is_uni_FOO|const U8 classnum|const UV c
+CpR     |bool   |_is_utf8_FOO|const U8 classnum|NN const U8 *p     \
                |NN const U8 * const e
-CbDpR  |bool   |is_utf8_idcont |NN const U8 *p
-CbDpR  |bool   |is_utf8_xidcont        |NN const U8 *p
-CbDpR  |bool   |is_utf8_alpha  |NN const U8 *p
-CbDpR  |bool   |is_utf8_ascii  |NN const U8 *p
-CbDpR  |bool   |is_utf8_blank  |NN const U8 *p
-CbDpR  |bool   |is_utf8_space  |NN const U8 *p
-CbDpR  |bool   |is_utf8_perl_space     |NN const U8 *p
-CbDpR  |bool   |is_utf8_perl_word      |NN const U8 *p
-CbDpR  |bool   |is_utf8_cntrl  |NN const U8 *p
-CbDpR  |bool   |is_utf8_digit  |NN const U8 *p
-CbDpR  |bool   |is_utf8_posix_digit    |NN const U8 *p
-CbDpR  |bool   |is_utf8_graph  |NN const U8 *p
-CbDpR  |bool   |is_utf8_upper  |NN const U8 *p
-CbDpR  |bool   |is_utf8_lower  |NN const U8 *p
-CbDpR  |bool   |is_utf8_print  |NN const U8 *p
-CbDpR  |bool   |is_utf8_punct  |NN const U8 *p
-CbDpR  |bool   |is_utf8_xdigit |NN const U8 *p
-CpR    |bool   |_is_utf8_mark  |NN const U8 *p
-AbDxpR |bool   |is_utf8_mark   |NN const U8 *p
+CpR     |bool   |_is_utf8_perl_idcont|NN const U8 *p|NN const U8 * const e
+CpR     |bool   |_is_utf8_perl_idstart|NN const U8 *p|NN const U8 * const e
+
 #if defined(PERL_CORE) || defined(PERL_EXT)
 EXdpR  |bool   |isSCRIPT_RUN   |NN const U8 *s|NN const U8 *send   \
                                |const bool utf8_target
@@ -1157,35 +1135,58 @@ 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
-Apd    |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 #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** error_msg       \
-                               |const bool output_warning       \
-                               |const bool strict               \
-                               |const bool silence_non_portable \
+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   |char   |grok_bslash_c  |const char source|const bool output_warning
-EpRX   |bool   |grok_bslash_o  |NN char** s             \
-                               |NN const char* const send       \
-                               |NN UV* uv                       \
-                               |NN const char** error_msg       \
-                               |const bool output_warning       \
-                               |const bool strict               \
-                               |const bool silence_non_portable \
+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
-EiR    |char*|form_short_octal_warning|NN const char * const s  \
-                               |const STRLEN len
+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
 EiRT   |I32    |regcurly       |NN const char *s
 #endif
-Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C)
+EpRX   |const char *|form_cp_too_large_msg|const U8 which      \
+                               |NULLOK const char * string     \
+                               |const Size_t len               \
+                               |const UV cp
+#endif
+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
 Apd    |int    |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
-Apd    |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+ApMd   |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+ApMd   |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+Cp     |UV     |grok_bin_oct_hex|NN const char* start                      \
+                                |NN STRLEN* len_p                          \
+                                |NN I32* flags                             \
+                                |NULLOK NV *result                         \
+                                |const unsigned shift                      \
+                                |const U8 lookup_bit                       \
+                                |const char prefix
+#ifdef PERL_IN_NUMERIC_C
+S      |void   |output_non_portable|const U8 shift
+#endif
 EXpdT  |bool   |grok_atoUV     |NN const char* pv|NN UV* valptr|NULLOK const char** endptr
 : These are all indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_clearenv |NN SV* sv|NN MAGIC* mg
@@ -1528,6 +1529,7 @@ p |OP*    |pmruntime      |NN OP *o|NN OP *expr|NULLOK OP *repl \
 #if defined(PERL_IN_OP_C)
 S      |OP*    |pmtrans        |NN OP* o|NN OP* expr|NN OP* repl
 #endif
+p      |void   |invmap_dump    |NN SV* invlist|NN UV * map
 Ap     |void   |pop_scope
 Ap     |void   |push_scope
 #if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
@@ -1537,6 +1539,7 @@ ApMb      |OP*    |ref            |NULLOK OP* o|I32 type
 S      |OP*    |refkids        |NULLOK OP* o|I32 type
 #endif
 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
@@ -1615,7 +1618,7 @@ p |void   |rxres_save     |NN void **rsp|NN REGEXP *rx
 p      |I32    |same_dirent    |NN const char* a|NN const char* b
 #endif
 Apda   |char*  |savepv         |NULLOK const char* pv
-Apda   |char*  |savepvn        |NULLOK const char* pv|I32 len
+Apda   |char*  |savepvn        |NULLOK const char* pv|Size_t len
 Apda   |char*  |savesharedpv   |NULLOK const char* pv
 
 : NULLOK only to suppress a compiler warning
@@ -1625,7 +1628,7 @@ Apda      |char*  |savesharedsvpv |NN SV *sv
 Apda   |char*  |savesvpv       |NN SV* sv
 Ap     |void   |savestack_grow
 Ap     |void   |savestack_grow_cnt     |I32 need
-Amp    |void   |save_aelem     |NN AV* av|SSize_t idx|NN SV **sptr
+Am     |void   |save_aelem     |NN AV* av|SSize_t idx|NN SV **sptr
 Ap     |void   |save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \
                                 |const U32 flags
 Ap     |I32    |save_alloc     |I32 size|I32 pad
@@ -1648,7 +1651,7 @@ Ap        |void   |save_shared_pvref|NN char** str
 Adp    |void   |save_gp        |NN GV* gv|I32 empty
 Apdh   |HV*    |save_hash      |NN GV* gv
 Ap     |void   |save_hints
-Amp    |void   |save_helem     |NN HV *hv|NN SV *key|NN SV **sptr
+Am     |void   |save_helem     |NN HV *hv|NN SV *key|NN SV **sptr
 Ap     |void   |save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
 Apdh   |void   |save_hptr      |NN HV** hptr
 Ap     |void   |save_I16       |NN I16* intp
@@ -1681,6 +1684,8 @@ Ap        |void   |save_pushptrptr|NULLOK void *const ptr1 \
 S      |void   |save_pushptri32ptr|NULLOK void *const ptr1|const I32 i \
                                |NULLOK void *const ptr2|const int type
 #endif
+Xiop   |I32    |TOPMARK
+Xiop   |I32    |POPMARK
 : Used in perly.y
 p      |OP*    |sawparens      |NULLOK OP* o
 Apd    |OP*    |op_contextualize|NN OP* o|I32 context
@@ -1701,14 +1706,19 @@ Axpd    |OP*    |op_scope       |NULLOK OP* o
 pe     |void   |set_caret_X
 Apd    |void   |setdefout      |NN GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|SSize_t len|U32 hash
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
 : Used in perl.c
-Tp     |Signal_t |sighandler   |int sig|NULLOK siginfo_t *info|NULLOK void *uap
-ATp    |Signal_t |csighandler  |int sig|NULLOK siginfo_t *info|NULLOK void *uap
+Tp     |Signal_t |sighandler   |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
+ATp    |Signal_t |csighandler  |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
 #else
 Tp     |Signal_t |sighandler   |int sig
 ATp    |Signal_t |csighandler  |int sig
 #endif
+Tp     |Signal_t |sighandler1  |int sig
+ATp    |Signal_t |csighandler1 |int sig
+Tp     |Signal_t |sighandler3  |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
+ATp    |Signal_t |csighandler3 |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
+ATp    |Signal_t |perly_sighandler     |int sig|NULLOK Siginfo_t *info|NULLOK void *uap|bool safe
 Ap     |SV**   |stack_grow     |NN SV** sp|NN SV** p|SSize_t n
 Ap     |I32    |start_subparse |I32 is_format|U32 flags
 Xp     |void   |init_named_cv  |NN CV *cv|NN OP *nameop
@@ -1771,10 +1781,10 @@ Apd     |void   |sv_clear       |NN SV *const orig_sv
 #if defined(PERL_IN_SV_C)
 S      |bool   |curse          |NN SV * const sv|const bool check_refcnt
 #endif
-AMopd  |I32    |sv_cmp         |NULLOK SV *const sv1|NULLOK SV *const sv2
+AMpd   |I32    |sv_cmp         |NULLOK SV *const sv1|NULLOK SV *const sv2
 Apd    |I32    |sv_cmp_flags   |NULLOK SV *const sv1|NULLOK SV *const sv2 \
                                |const U32 flags
-AMopd  |I32    |sv_cmp_locale  |NULLOK SV *const sv1|NULLOK SV *const sv2
+AMpd   |I32    |sv_cmp_locale  |NULLOK SV *const sv1|NULLOK SV *const sv2
 Apd    |I32    |sv_cmp_locale_flags    |NULLOK SV *const sv1 \
                                |NULLOK SV *const sv2|const U32 flags
 #if defined(USE_LOCALE_COLLATE)
@@ -1790,6 +1800,7 @@ ApdR      |bool   |sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags
 ApdR   |bool   |sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
 ApdR   |bool   |sv_derived_from_pvn|NN SV* sv|NN const char *const name \
                                     |const STRLEN len|U32 flags
+ApdRx  |bool   |sv_isa_sv      |NN SV* sv|NN SV* namesv
 ApdR   |bool   |sv_does        |NN SV* sv|NN const char *const name
 ApdR   |bool   |sv_does_sv     |NN SV* sv|NN SV* namesv|U32 flags
 ApdR   |bool   |sv_does_pv     |NN SV* sv|NN const char *const name|U32 flags
@@ -1886,46 +1897,51 @@ 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
-EXpR   |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
-EXp    |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
-#ifdef PERL_IN_REGCOMP_C
+#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
+#endif
+#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
+#endif
+#if defined(PERL_IN_REGCOMP_C)
 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
 #ifndef PERL_EXT_RE_BUILD
 EiRT   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
 EiRT   |UV     |invlist_max    |NN SV* const invlist
-ES     |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
-ES     |void   |invlist_extend    |NN SV* const invlist|const UV len
-ES     |void   |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
 EiRT   |IV*    |get_invlist_previous_index_addr|NN SV* invlist
-Ei     |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
 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
-S      |void   |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
 #endif
-EiRT   |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
-EiT    |void   |invlist_iterinit|NN SV* invlist
-ESRT   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EiT    |void   |invlist_iterfinish|NN SV* invlist
-EiRT   |UV     |invlist_highest|NN SV* const invlist
-ERS    |SV*    |_make_exactf_invlist   |NN RExC_state_t *pRExC_state \
-                                       |NN regnode *node
-ESR    |SV*    |invlist_contents|NN SV* const invlist              \
-                                |const bool traditional_style
 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
+#ifndef PERL_EXT_RE_BUILD
+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
 #endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
-EXm    |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
+#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
-EXm    |void   |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
+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
-EXm    |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+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
@@ -1934,7 +1950,10 @@ EXpR     |SV*    |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** oth
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
 EpX    |SV*    |invlist_clone  |NN SV* const invlist|NULLOK SV* newlist
 #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)
+#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
@@ -1942,6 +1961,9 @@ 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
 #endif
+#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
+#endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 EXp    |SV*    |_get_regclass_nonbitmap_data                              \
                                |NULLOK const regexp *prog                 \
@@ -1951,14 +1973,14 @@ EXp     |SV*    |_get_regclass_nonbitmap_data                              \
                                |NULLOK SV **lonly_utf8_locale             \
                                |NULLOK SV **output_invlist
 #endif
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
+#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
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
-E    |char * |_byte_dump_string                                      \
+EXp    |char * |_byte_dump_string                                      \
                                |NN const U8 * const start              \
                                |const STRLEN len                       \
                                |const bool format
@@ -1974,48 +1996,35 @@ SR      |char * |unexpected_non_continuation_text                       \
                |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      |U32    |check_and_deprecate                                        \
-                               |NN const U8 * p                            \
-                               |NN const U8 ** e                           \
-                               |const unsigned type                        \
-                               |const bool use_locale                      \
-                               |NN const char * const file                 \
-                               |const unsigned line
+#endif
 S      |UV     |_to_utf8_case  |const UV uv1                                   \
                                |NULLOK const U8 *p                             \
                                |NN U8* ustrp                                   \
                                |NN STRLEN *lenp                                \
                                |NN SV *invlist                                 \
-                               |NN const int * const invmap                    \
-                               |NULLOK const unsigned int * const * const aux_tables   \
+                               |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
 S      |UV     |turkic_lc      |NN const U8 * const p0|NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
 S      |UV     |turkic_uc      |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
 #endif
-ApbMdD |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Cp     |UV     |_to_utf8_lower_flags|NN const U8 *p|NULLOK const U8* e         \
-                               |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags    \
-                               |NN const char * const file|const int line
-ApbMdD |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+                               |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
 Cp     |UV     |_to_utf8_upper_flags   |NN const U8 *p|NULLOK const U8 *e      \
-                               |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags    \
-                               |NN const char * const file|const int line
-ApbMdD |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+                               |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
 Cp     |UV     |_to_utf8_title_flags   |NN const U8 *p|NULLOK const U8* e      \
-                               |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags    \
-                               |NN const char * const file|const int line
-ApbMdD |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+                               |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
 Cp     |UV     |_to_utf8_fold_flags|NN const U8 *p|NULLOK const U8 *e          \
-                               |NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags  \
-                               |NN const char * const file|const int line
+                               |NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
 #if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
 pT     |bool   |translate_substr_offsets|STRLEN curlen|IV pos1_iv \
                                         |bool pos1_is_uv|IV len_iv \
@@ -2038,8 +2047,8 @@ p |void   |utilize        |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* a
 Cp     |void   |_force_out_malformed_utf8_message                          \
                |NN const U8 *const p|NN const U8 * const e|const U32 flags \
                |const bool die_here
-EXp    |U8*    |utf16_to_utf8  |NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
-EXp    |U8*    |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
+EXp    |U8*    |utf16_to_utf8  |NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
+EXp    |U8*    |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
 AdpR   |STRLEN |utf8_length    |NN const U8* s|NN const U8 *e
 AipdR  |IV     |utf8_distance  |NN const U8 *a|NN const U8 *b
 AipdRT |U8*    |utf8_hop       |NN const U8 *s|SSize_t off
@@ -2092,14 +2101,14 @@ Adm     |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
 Cp     |U8*    |uvuni_to_utf8  |NN U8 *d|UV uv
 Adm    |U8*    |uvchr_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Admx   |U8*    |uvchr_to_utf8_flags_msgs|NN U8 *d|UV uv|UV flags|NULLOK HV ** msgs
-CMpod  |U8*    |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|const UV flags
+CMp  |U8*    |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|const UV flags
 Cp     |U8*    |uvoffuni_to_utf8_flags_msgs|NN U8 *d|UV uv|const UV flags|NULLOK HV** msgs
 Cdp    |U8*    |uvuni_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |char*  |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
 ApdR   |char*  |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
 EXpR   |Size_t |_inverse_folds |const UV cp                                \
-                               |NN unsigned int * first_folds_to           \
-                               |NN const unsigned int ** remaining_folds_to
+                               |NN U32 * first_folds_to                    \
+                               |NN const U32 ** remaining_folds_to
 : Used by Data::Alias
 EXp    |void   |vivify_defelem |NN SV* sv
 : Used in pp.c
@@ -2256,6 +2265,8 @@ AiTMdp    |SV *   |SvREFCNT_inc_NN|NN SV *sv
 AiTMdp |void   |SvREFCNT_inc_void|NULLOK SV *sv
 AiMdp  |void   |SvREFCNT_dec   |NULLOK SV *sv
 AiMdp  |void   |SvREFCNT_dec_NN|NN SV *sv
+AiTp   |void   |SvAMAGIC_on    |NN SV *sv
+AiTp   |void   |SvAMAGIC_off   |NN SV *sv
 : This is indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
 Ap     |OP*    |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
@@ -2308,7 +2319,9 @@ Ap        |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern*
 #  endif
 #endif
 
-Admop  |const XOP *    |custom_op_xop  |NN const OP *o
+: The reason for the 'u' flag is that this passes "aTHX_ x" to its callee: not
+: a legal C parameter
+Admu   |const XOP *    |Perl_custom_op_xop     |NN const OP *o
 AbpRdD |const char *   |custom_op_name |NN const OP *o
 AbpRdD |const char *   |custom_op_desc |NN const OP *o
 pRX    |XOPRETANY      |custom_op_get_field    |NN const OP *o|const xop_flags_enum field
@@ -2323,12 +2336,11 @@ Adp     |int    |nothreadhook
 p      |void   |init_constants
 
 #if defined(PERL_IN_DOOP_C)
-SR     |Size_t |do_trans_simple        |NN SV * const sv
-SR     |Size_t |do_trans_count         |NN SV * const sv
-SR     |Size_t |do_trans_complex       |NN SV * const sv
-SR     |Size_t |do_trans_simple_utf8   |NN SV * const sv
-SR     |Size_t |do_trans_count_utf8    |NN SV * const sv
-SR     |Size_t |do_trans_complex_utf8  |NN SV * const sv
+SR     |Size_t |do_trans_simple        |NN SV * const sv|NN const OPtrans_map * const tbl
+SR     |Size_t |do_trans_count         |NN SV * const sv|NN const OPtrans_map * const tbl
+SR     |Size_t |do_trans_complex       |NN SV * const sv|NN const OPtrans_map * const tbl
+SR     |Size_t |do_trans_invmap        |NN SV * const sv|NN AV * const map
+SR     |Size_t |do_trans_count_invmap  |NN SV * const sv|NN AV * const map
 #endif
 
 #if defined(PERL_IN_GV_C)
@@ -2584,6 +2596,7 @@ ES        |void    |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
 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
@@ -2706,7 +2719,7 @@ ETSR      |int    |edit_distance  |NN const UV *src                   \
                                |const STRLEN y                     \
                                |const SSize_t maxDistance
 EpX    |SV *   |parse_uniprop_string|NN const char * const name            \
-                                    |const Size_t name_len                 \
+                                    |Size_t name_len                       \
                                     |const bool is_utf8                    \
                                     |const bool to_fold                    \
                                     |const bool runtime                    \
@@ -2739,6 +2752,7 @@ ES        |bool   |put_charclass_bitmap_innards|NN SV* sv             \
                                |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                     \
@@ -2770,8 +2784,8 @@ ESR       |bool   |regtail_study  |NN RExC_state_t *pRExC_state \
 EXRp   |bool   |isFOO_lc       |const U8 classnum|const U8 character
 #endif
 
-#if 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_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
 #endif
 
 #if defined(PERL_IN_REGEXEC_C)
@@ -3020,8 +3034,13 @@ EdXxp    |bool   |validate_proto |NN SV *name|NULLOK SV *proto|bool warn \
                |bool curstash
 
 #if defined(PERL_IN_UNIVERSAL_C)
-S      |bool   |isa_lookup     |NN HV *stash|NN const char * const name \
+SG     |bool   |isa_lookup     |NULLOK HV *stash|NULLOK SV *namesv|NULLOK const char * name \
                                         |STRLEN len|U32 flags
+SG   |bool   |sv_derived_from_svpvn  |NULLOK SV *sv                    \
+                                    |NULLOK SV *namesv                 \
+                                    |NULLOK const char * name          \
+                                    |const STRLEN len                  \
+                                    |U32 flags
 #endif
 
 #if defined(PERL_IN_LOCALE_C)
@@ -3108,14 +3127,8 @@ SR       |UV     |check_locale_boundary_crossing                             \
                |NN U8* const ustrp                                         \
                |NN STRLEN *lenp
 iR     |bool   |is_utf8_common |NN const U8 *const p                       \
+                               |NN const U8 *const e                       \
                                |NULLOK SV* const invlist
-iR     |bool   |is_utf8_common_with_len|NN const U8 *const p               \
-                                       |NN const U8 *const e               \
-                                       |NULLOK SV* const invlist
-SR     |SV*    |swatch_get     |NN SV* swash|UV start|UV span
-SR     |U8*    |swash_scan_list_line|NN U8* l|NN U8* const lend|NN UV* min \
-               |NN UV* max|NN UV* val|const bool wants_value               \
-               |NN const U8* const typestr
 #endif
 
 EXiTp  |void   |append_utf8_from_native_byte|const U8 byte|NN U8** dest
@@ -3131,14 +3144,14 @@ Amd     |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
 Adp    |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
 Apd    |char*  |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
 AdpMb  |void   |sv_copypv      |NN SV *const dsv|NN SV *const ssv
-Apmd   |void   |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv
+Amd    |void   |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv
 Apd    |void   |sv_copypv_flags        |NN SV *const dsv|NN SV *const ssv|const I32 flags
 Cpo    |char*  |my_atof2       |NN const char *orig|NN NV* value
 Cp     |char*  |my_atof3       |NN const char *orig|NN NV* value|const STRLEN len
 ApT    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 ApT    |int    |my_dirfd       |NULLOK DIR* dir
 #ifdef PERL_ANY_COW
-: Used in pp_hot.c and regexec.c
+: Used in regexec.c
 pxXE   |SV*    |sv_setsv_cow   |NULLOK SV* dstr|NN SV* sstr
 #endif
 
@@ -3239,6 +3252,9 @@ pd        |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int ful
 Sd     |void   |cv_dump        |NN const CV *cv|NN const char *title
 #  endif
 #endif
+#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
+iT     |bool   |PadnameIN_SCOPE|NN const PADNAME * const pn|const U32 seq
+#endif
 Apd    |CV*    |cv_clone       |NN CV* proto
 p      |CV*    |cv_clone_into  |NN CV* proto|NN CV *target
 pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
@@ -3329,11 +3345,11 @@ ApoP    |bool   |ckwarn_d       |U32 w
 XEopxR |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \
                                |NN const char *const bits|STRLEN size
 
-AMpTodf        |int    |my_snprintf    |NN char *buffer|const Size_t len|NN const char *format|...
-AMpTod |int    |my_vsnprintf   |NN char *buffer|const Size_t len|NN const char *format|va_list ap
+AMpTdf |int    |my_snprintf    |NN char *buffer|const Size_t len|NN const char *format|...
+AMpT |int    |my_vsnprintf   |NN char *buffer|const Size_t len|NN const char *format|va_list ap
 #ifdef USE_QUADMATH
-ApTd   |const char*    |quadmath_format_single|NN const char* format
-ApTd   |bool|quadmath_format_needed|NN const char* format
+pTd    |bool   |quadmath_format_valid|NN const char* format
+pTd    |bool|quadmath_format_needed|NN const char* format
 #endif
 
 : Used in mg.c, sv.c
@@ -3363,7 +3379,7 @@ ApTd      |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t siz
 #endif
 
 #ifndef HAS_STRNLEN
-ApTd   |Size_t |my_strnlen     |NN const char *str|Size_t maxlen
+AipTd  |Size_t |my_strnlen     |NN const char *str|Size_t maxlen
 #endif
 
 #ifndef HAS_MKOSTEMP
@@ -3374,7 +3390,7 @@ pTo       |int    |my_mkstemp     |NN char *templte
 #endif
 
 APpdT  |bool   |isinfnan       |NV nv
-p      |bool   |isinfnansv     |NN SV *sv
+pd     |bool   |isinfnansv     |NN SV *sv
 
 #if !defined(HAS_SIGNBIT)
 AxdToP |int    |Perl_signbit   |NV f
@@ -3443,10 +3459,6 @@ ATop     |void   |clone_params_del|NN CLONE_PARAMS *param
 : Used in perl.c and toke.c
 op     |void   |populate_isa   |NN const char *name|STRLEN len|...
 
-: Used in keywords.c and toke.c
-Xop    |bool   |feature_is_enabled|NN const char *const name \
-               |STRLEN namelen
-
 : Some static inline functions need predeclaration because they are used
 : inside other static inline functions.
 #if defined(PERL_CORE) || defined (PERL_EXT)
@@ -3460,6 +3472,7 @@ Apx       |void   |leave_adjust_stacks|NN SV **from_sp|NN SV **to_sp \
                 |U8 gimme|int filter
 
 #ifndef PERL_NO_INLINE_FUNCTIONS
+Aixp   |U8     |gimme_V         |
 Aixp   |PERL_CONTEXT * |cx_pushblock|U8 type|U8 gimme|NN SV** sp|I32 saveix
 Aixp   |void   |cx_popblock|NN PERL_CONTEXT *cx
 Aixp   |void   |cx_topblock|NN PERL_CONTEXT *cx