This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix missing X in 2 embed.fnc entries
[perl5.git] / embed.fnc
index 085f2f1..cb103c4 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1,6 +1,11 @@
 : BEGIN{die "You meant to run regen/embed.pl"} # Stop early if fed to perl.
 :
 : This file is processed by regen/embed.pl and autodoc.pl
+: It is used to declare the interfaces to the functions defined by perl.  All
+: non-static functions must have entries here.  Static functions need not, but
+: there is benefit to declaring them here, as it generally handles the thread
+: context parameter invisibly, as well as making sure a PERL_ARGS_ASSERT_foo
+: macro is defined, which can save you debugging time.
 :
 : Lines are of the form:
 :    flags|return_type|function_name|arg1|arg2|...|argN
@@ -8,6 +13,11 @@
 : A line may be continued on another by ending it with a backslash.
 : Leading and trailing whitespace will be ignored in each component.
 :
+: The default without flags is to declare a function for internal perl-core use
+: only, not visible to XS code nor to Perl extensions.  Use the A and E flags to
+: modify this.  Most non-static functions should have the 'p' flag to avoid
+: namespace clashes with programs that embed perl.
+:
 : flags are single letters with following meanings:
 :
 :   A  Available fully everywhere (usually part of the public API):
@@ -55,7 +65,7 @@
 :      This flag effectively causes nothing to happen if the perl interpreter
 :      is compiled with -DNO_MATHOMS; otherwise these happen:
 :         add entry to the list of exported symbols;
-:         create PERL_ARGS_ASSERT_FOO;
+:         create PERL_ARGS_ASSERT_foo;
 :        add embed.h entry (unless overridden by the 'm' flag)
 :
 :   D  Function is deprecated:
@@ -75,7 +85,7 @@
 :        1) must be static to its containing file ("i" or "s" flag); or
 :         2) be combined with the "X" flag.
 :
-:   f  Function takes a format string. If the function name /strftime/
+:   f  Function takes a format string. If the function name =~ qr/strftime/
 :      then its assumed to take a strftime-style format string as 1st arg;
 :      otherwise it's assumed to be a printf style format string, varargs
 :      (hence any entry that would otherwise go in embed.h is suppressed):
 :
 :         embed.h: suppress "#define foo Perl_foo"
 :
-:   P  Pure function: no effects except the return value;
-:      return value depends only on params and/or globals:
+:   P  Pure function:
+:
+:      A pure function has no effects except the return value, and the return
+:      value depends only on params and/or globals.  Also implies "R":
 :
 :         proto.h: add __attribute__pure__
 :
 :         proto.h: function is declared as Perl_foo rather than foo
 :         embed.h: "#define foo Perl_foo" entries added
 :
-:   R  Return value must not be ignored (also implied by 'a' flag):
+:   R  Return value must not be ignored (also implied by 'a' and 'P' flags):
 :
 :        proto.h: add __attribute__warn_unused_result__
 :
 :
 :         (currently no effect)
 :
+:   W  Add a _pDEPTH argument to function prototypes, and an _aDEPTH
+:      argument to the function calls. This means that under DEBUGGING
+:      a depth argument is added to the functions, which is used for
+:      example by the regex engine for debugging and trace output.
+:      A non DEBUGGING build will not pass the unused argument.
+:      Currently restricted to functions with at least one argument.
+:
 :   X  Explicitly exported:
 :
 :         add entry to the list of exported symbols, unless x or m
@@ -366,6 +385,10 @@ Ap |I32    |debstackptrs
 pR     |SV *   |defelem_target |NN SV *sv|NULLOK MAGIC *mg
 Anp    |char*  |delimcpy       |NN char* to|NN const char* toend|NN const char* from \
                                |NN const char* fromend|int delim|NN I32* retlen
+np     |char*  |delimcpy_no_escape|NN char* to|NN const char* toend \
+                                  |NN const char* from \
+                                  |NN const char* fromend|int delim \
+                                  |NN I32* retlen
 : Used in op.c, perl.c
 pM     |void   |delete_eval_scope
 Aprd   |OP*    |die_sv         |NN SV *baseex
@@ -678,32 +701,33 @@ ApR       |I32    |is_lvalue_sub
 : Used in cop.h
 XopR   |I32    |was_lvalue_sub
 #ifndef PERL_NO_INLINE_FUNCTIONS
-AiMRn  |STRLEN |_is_utf8_char_slow|NN const U8 *s|NN const U8 *e
-#endif
-ADMpPR |U32    |to_uni_upper_lc|U32 c
-ADMpPR |U32    |to_uni_title_lc|U32 c
-ADMpPR |U32    |to_uni_lower_lc|U32 c
-ADMpPR |bool   |is_uni_alnum   |UV c
-ADMpPR |bool   |is_uni_alnumc  |UV c
-ADMpPR |bool   |is_uni_idfirst |UV c
-ADMpPR |bool   |is_uni_alpha   |UV c
+ApMRnP |STRLEN |_is_utf8_char_helper|NN const U8 * const s|NN const U8 * e|const U32 flags
+#endif
+ADMp |U32    |to_uni_upper_lc|U32 c
+ADMp |U32    |to_uni_title_lc|U32 c
+ADMp |U32    |to_uni_lower_lc|U32 c
+ADMp |bool   |is_uni_alnum   |UV c
+ADMp |bool   |is_uni_alnumc  |UV c
+ADMp |bool   |is_uni_idfirst |UV c
+ADMp |bool   |is_uni_alpha   |UV c
 ADMpPR |bool   |is_uni_ascii   |UV c
 ADMpPR |bool   |is_uni_blank   |UV c
 ADMpPR |bool   |is_uni_space   |UV c
 ADMpPR |bool   |is_uni_cntrl   |UV c
-ADMpPR |bool   |is_uni_graph   |UV c
-ADMpPR |bool   |is_uni_digit   |UV c
-ADMpPR |bool   |is_uni_upper   |UV c
-ADMpPR |bool   |is_uni_lower   |UV c
-ADMpPR |bool   |is_uni_print   |UV c
-ADMpPR |bool   |is_uni_punct   |UV c
+ADMp |bool   |is_uni_graph   |UV c
+ADMp |bool   |is_uni_digit   |UV c
+ADMp |bool   |is_uni_upper   |UV c
+ADMp |bool   |is_uni_lower   |UV c
+ADMp |bool   |is_uni_print   |UV c
+ADMp |bool   |is_uni_punct   |UV c
 ADMpPR |bool   |is_uni_xdigit  |UV c
 AMp    |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
-ADMpPR |bool   |isIDFIRST_lazy |NN const char* p
-ADMpPR |bool   |isALNUM_lazy   |NN const char* p
+ADMp |bool   |isIDFIRST_lazy |NN const char* p
+ADMp |bool   |isALNUM_lazy   |NN const char* p
 #ifdef PERL_IN_UTF8_C
 snR    |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
+inPR   |bool   |is_utf8_cp_above_31_bits|NN const U8 * const s|NN const U8 * const e
 #endif
 #if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 EXp    |UV        |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
@@ -714,31 +738,66 @@ p |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_o
 AMp    |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
 AMmp   |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
-ADMpPR |bool   |is_uni_alnum_lc|UV c
-ADMpPR |bool   |is_uni_alnumc_lc|UV c
-ADMpPR |bool   |is_uni_idfirst_lc|UV c
+ADMp |bool   |is_uni_alnum_lc|UV c
+ADMp |bool   |is_uni_alnumc_lc|UV c
+ADMp |bool   |is_uni_idfirst_lc|UV c
 AMpR   |bool   |_is_uni_perl_idcont|UV c
 AMpR   |bool   |_is_uni_perl_idstart|UV c
-ADMpPR |bool   |is_uni_alpha_lc|UV c
+ADMp |bool   |is_uni_alpha_lc|UV c
 ADMpPR |bool   |is_uni_ascii_lc|UV c
 ADMpPR |bool   |is_uni_space_lc|UV c
 ADMpPR |bool   |is_uni_blank_lc|UV c
 ADMpPR |bool   |is_uni_cntrl_lc|UV c
-ADMpPR |bool   |is_uni_graph_lc|UV c
-ADMpPR |bool   |is_uni_digit_lc|UV c
-ADMpPR |bool   |is_uni_upper_lc|UV c
-ADMpPR |bool   |is_uni_lower_lc|UV c
-ADMpPR |bool   |is_uni_print_lc|UV c
-ADMpPR |bool   |is_uni_punct_lc|UV c
+ADMp |bool   |is_uni_graph_lc|UV c
+ADMp |bool   |is_uni_digit_lc|UV c
+ADMp |bool   |is_uni_upper_lc|UV c
+ADMp |bool   |is_uni_lower_lc|UV c
+ADMp |bool   |is_uni_print_lc|UV c
+ADMp |bool   |is_uni_punct_lc|UV c
 ADMpPR |bool   |is_uni_xdigit_lc|UV c
 AnidRP |bool   |is_utf8_invariant_string|NN const U8* const s|STRLEN const len
 AmnpdRP        |bool   |is_ascii_string|NN const U8* const s|const STRLEN len
 AmnpdRP        |bool   |is_invariant_string|NN const U8* const s|const STRLEN len
 AnpdD  |STRLEN |is_utf8_char   |NN const U8 *s
 Abmnpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
-Anpd   |bool   |is_utf8_string |NN const U8 *s|STRLEN len
-Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NN const U8 **ep
-Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
+AnipdP |bool   |is_utf8_string |NN const U8 *s|const STRLEN len
+AnidP  |bool   |is_utf8_string_flags                                       \
+               |NN const U8 *s|const STRLEN len|const U32 flags
+AnidP  |bool   |is_strict_utf8_string|NN const U8 *s|const STRLEN len
+AnidP  |bool   |is_c9strict_utf8_string|NN const U8 *s|const STRLEN len
+Anpdmb |bool   |is_utf8_string_loc                                         \
+               |NN const U8 *s|const STRLEN len|NN const U8 **ep
+Andm   |bool   |is_utf8_string_loc_flags                                   \
+               |NN const U8 *s|const STRLEN len|NN const U8 **ep           \
+               |const U32 flags
+Andm   |bool   |is_strict_utf8_string_loc                                  \
+               |NN const U8 *s|const STRLEN len|NN const U8 **ep
+Andm   |bool   |is_c9strict_utf8_string_loc                                \
+               |NN const U8 *s|const STRLEN len|NN const U8 **ep
+Anipd  |bool   |is_utf8_string_loclen                                      \
+               |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep       \
+               |NULLOK STRLEN *el
+Anid   |bool   |is_utf8_string_loclen_flags                                \
+               |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep       \
+               |NULLOK STRLEN *el|const U32 flags
+Anid   |bool   |is_strict_utf8_string_loclen                               \
+               |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep       \
+               |NULLOK STRLEN *el
+Anid   |bool   |is_c9strict_utf8_string_loclen                             \
+               |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep       \
+               |NULLOK STRLEN *el
+Amnd   |bool   |is_utf8_fixed_width_buf_flags                              \
+               |NN const U8 * const s|const STRLEN len|const U32 flags
+Amnd   |bool   |is_utf8_fixed_width_buf_loc_flags                          \
+               |NN const U8 * const s|const STRLEN len                     \
+               |NULLOK const U8 **ep|const U32 flags
+Anid   |bool   |is_utf8_fixed_width_buf_loclen_flags                       \
+               |NN const U8 * const s|const STRLEN len                     \
+               |NULLOK const U8 **ep|NULLOK STRLEN *el|const U32 flags
+AmndP  |bool   |is_utf8_valid_partial_char                                 \
+               |NN const U8 * const s|NN const U8 * const e
+AnidP  |bool   |is_utf8_valid_partial_char_flags                           \
+               |NN const U8 * const s|NN const U8 * const e|const U32 flags
 AMpR   |bool   |_is_uni_FOO|const U8 classnum|const UV c
 AMpR   |bool   |_is_utf8_FOO|const U8 classnum|NN const U8 *p
 ADMpR  |bool   |is_utf8_alnum  |NN const U8 *p
@@ -1163,9 +1222,9 @@ ApdO      |HV*    |get_hv         |NN const char *name|I32 flags
 ApdO   |CV*    |get_cv         |NN const char* name|I32 flags
 Apd    |CV*    |get_cvn_flags  |NN const char* name|STRLEN len|I32 flags
 #ifdef WIN32
-ApPM   |char*  |my_setlocale   |int category|NULLOK const char* locale
+Ap   |char*  |my_setlocale   |int category|NULLOK const char* locale
 #else
-AmPM   |char*  |my_setlocale   |int category|NULLOK const char* locale
+Am   |char*  |my_setlocale   |int category|NULLOK const char* locale
 #endif
 ApOM   |int    |init_i18nl10n  |int printwarn
 ApOM   |int    |init_i18nl14n  |int printwarn
@@ -1188,7 +1247,7 @@ s |void   |pidgone        |Pid_t pid|int status
 #endif
 : Used in perly.y
 p      |OP*    |pmruntime      |NN OP *o|NN OP *expr|NULLOK OP *repl \
-                               |bool isreg|I32 floor
+                               |UV flags|I32 floor
 #if defined(PERL_IN_OP_C)
 s      |OP*    |pmtrans        |NN OP* o|NN OP* expr|NN OP* repl
 #endif
@@ -1203,7 +1262,7 @@ ApM       |SV*    |regclass_swash |NULLOK const regexp *prog \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp|NULLOK SV **altsvp
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-AMpR   |SV*    |_new_invlist_C_array|NN const UV* const list
+EXpR   |SV*    |_new_invlist_C_array|NN const UV* const list
 EXMp   |bool   |_invlistEQ     |NN SV* const a|NN SV* const b|const bool complement_b
 #endif
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
@@ -1526,6 +1585,7 @@ Apd       |SV*    |sv_setref_pvn  |NN SV *const rv|NULLOK const char *const classname \
                                |NN const char *const pv|const STRLEN n
 Apd    |void   |sv_setpv       |NN SV *const sv|NULLOK const char *const ptr
 Apd    |void   |sv_setpvn      |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
+Apd    |char  *|sv_setpv_bufsize|NN SV *const sv|const STRLEN cur|const STRLEN len
 Xp     |void   |sv_sethek      |NN SV *const sv|NULLOK const HEK *const hek
 Apmdb  |void   |sv_setsv       |NN SV *dstr|NULLOK SV *sstr
 Apmdb  |void   |sv_taint       |NN SV* sv
@@ -1549,8 +1609,8 @@ 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 I32 svmax|NULLOK bool *const maybe_tainted
 ApR    |NV     |str_to_version |NN SV *sv
-ApRM   |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
-ApM    |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
+EXpRM  |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
+EXpM   |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
 #ifdef PERL_IN_REGCOMP_C
 EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
 EiM    |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
@@ -1610,7 +1670,7 @@ EXMpR     |SV*    |_get_swash_invlist|NN SV* const swash
 EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-ApM    |SV*    |_get_regclass_nonbitmap_data                              \
+EXpM   |SV*    |_get_regclass_nonbitmap_data                              \
                                |NULLOK const regexp *prog                 \
                                |NN const struct regnode *node             \
                                |bool doinit                               \
@@ -1633,6 +1693,15 @@ ApdD     |UV     |to_utf8_case   |NN const U8 *p                                 \
                                |NN const char *normal|                         \
                                NULLOK const char *special
 #if defined(PERL_IN_UTF8_C)
+inRP   |bool   |does_utf8_overflow|NN const U8 * const s|NN const U8 * e
+inRP   |bool   |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s|const STRLEN len
+inRP   |bool   |isFF_OVERLONG  |NN const U8 * const s|const STRLEN len
+sMR    |char * |unexpected_non_continuation_text                       \
+               |NN const U8 * const s                                  \
+               |STRLEN print_len                                       \
+               |const STRLEN non_cont_byte_pos                         \
+               |const STRLEN expect_len
+sM     |char * |_byte_dump_string|NN const U8 * s|const STRLEN len
 s      |UV     |_to_utf8_case  |const UV uv1                                   \
                                |NN const U8 *p                                 \
                                |NN U8* ustrp                                   \
@@ -1677,6 +1746,9 @@ Ap        |U8*    |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
 AdpPR  |STRLEN |utf8_length    |NN const U8* s|NN const U8 *e
 AipdPR |IV     |utf8_distance  |NN const U8 *a|NN const U8 *b
 AipdPRn        |U8*    |utf8_hop       |NN const U8 *s|SSize_t off
+AipdPRn        |U8*    |utf8_hop_back|NN const U8 *s|SSize_t off|NN const U8 *start
+AipdPRn        |U8*    |utf8_hop_forward|NN const U8 *s|SSize_t off|NN const U8 *end
+AipdPRn        |U8*    |utf8_hop_safe  |NN const U8 *s|SSize_t off|NN const U8 *start|NN const U8 *end
 ApMd   |U8*    |utf8_to_bytes  |NN U8 *s|NN STRLEN *len
 Apd    |int    |bytes_cmp_utf8 |NN const U8 *b|STRLEN blen|NN const U8 *u \
                                |STRLEN ulen
@@ -1689,7 +1761,15 @@ Amd      |UV     |utf8_to_uvchr_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retl
 ApdD   |UV     |utf8_to_uvuni_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
 pM     |bool   |check_utf8_print       |NN const U8 *s|const STRLEN len
 
-Adp    |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+Adop   |UV     |utf8n_to_uvchr |NN const U8 *s                             \
+                               |STRLEN curlen                              \
+                               |NULLOK STRLEN *retlen                      \
+                               |const U32 flags
+Adp    |UV     |utf8n_to_uvchr_error|NN const U8 *s                        \
+                               |STRLEN curlen                              \
+                               |NULLOK STRLEN *retlen                      \
+                               |const U32 flags                            \
+                               |NULLOK U32 * errors
 AipnR  |UV     |valid_utf8_to_uvchr    |NN const U8 *s|NULLOK STRLEN *retlen
 Ap     |UV     |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
 
@@ -2200,6 +2280,12 @@ Es       |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \
                                |NULLOK SV ** return_invlist            \
                                |NN I32 *flagp|U32 depth                \
                                |NN char * const oregcomp_parse
+#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
+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*|reg_node      |NN RExC_state_t *pRExC_state|U8 op
 Es     |regnode*|regpiece      |NN RExC_state_t *pRExC_state \
@@ -2339,21 +2425,20 @@ Es      |U8     |regtail_study  |NN RExC_state_t *pRExC_state \
 ERs    |bool   |isFOO_lc       |const U8 classnum|const U8 character
 ERs    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character
 ERs    |SSize_t|regmatch       |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-ERs    |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
+WERs   |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
                                |NN const regnode *p \
                                |NN regmatch_info *const reginfo \
-                               |I32 max \
-                               |int depth
+                               |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
-Es     |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
+WEs    |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
                                |U32 maxopenparen
-Es     |void   |regcppop       |NN regexp *rex\
-                               |NN U32 *maxopenparen_p
+WEs    |void   |regcppop       |NN regexp *rex|NN U32 *maxopenparen_p
+WEs    |void   |regcp_restore  |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
 ERsn   |U8*    |reghop3        |NN U8 *s|SSize_t off|NN const U8 *lim
 ERsn   |U8*    |reghop4        |NN U8 *s|SSize_t off|NN const U8 *llim \
                                |NN const U8 *rlim
@@ -2537,7 +2622,7 @@ s |void   |force_ident_maybe_lex|char pit
 s      |void   |incline        |NN const char *s
 s      |int    |intuit_method  |NN char *s|NULLOK SV *ioname|NULLOK CV *cv
 s      |int    |intuit_more    |NN char *s
-s      |I32    |lop            |I32 f|int x|NN char *s
+s      |I32    |lop            |I32 f|U8 x|NN char *s
 rs     |void   |missingterm    |NULLOK char *s
 s      |void   |no_op          |NN const char *const what|NULLOK char *s
 s      |int    |pending_ident
@@ -2587,7 +2672,7 @@ s |void   |print_collxfrm_input_and_return                \
     && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
 ApM    |bool   |_is_cur_LC_category_utf8|int category
 #      ifdef DEBUGGING
-AMnPpR |char * |_setlocale_debug_string|const int category                 \
+AMnpR  |char * |_setlocale_debug_string|const int category                 \
                                        |NULLOK const char* const locale    \
                                        |NULLOK const char* const retval
 #      endif
@@ -2633,9 +2718,10 @@ sRM      |U8*    |swash_scan_list_line|NN U8* l|NN U8* const lend|NN UV* min \
 #endif
 
 #ifndef PERL_NO_INLINE_FUNCTIONS
-AiMn   |void   |append_utf8_from_native_byte|const U8 byte|NN U8** dest
+EXiMn  |void   |append_utf8_from_native_byte|const U8 byte|NN U8** dest
 #endif
 
+Apd    |void   |sv_set_undef   |NN SV *sv
 Apd    |void   |sv_setsv_flags |NN SV *dstr|NULLOK SV *sstr|const I32 flags
 Apd    |void   |sv_catpvn_flags|NN SV *const dstr|NN const char *sstr|const STRLEN len \
                                |const I32 flags