This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use av_top_index() instead of av_tindex()
[perl5.git] / embed.h
diff --git a/embed.h b/embed.h
index cd167db..50706a7 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -48,6 +48,7 @@
 #define atfork_lock            Perl_atfork_lock
 #define atfork_unlock          Perl_atfork_unlock
 #define av_clear(a)            Perl_av_clear(aTHX_ a)
+#define av_count(a)            Perl_av_count(aTHX_ a)
 #define av_delete(a,b,c)       Perl_av_delete(aTHX_ a,b,c)
 #define av_exists(a,b)         Perl_av_exists(aTHX_ a,b)
 #define av_extend(a,b)         Perl_av_extend(aTHX_ a,b)
@@ -59,7 +60,6 @@
 #define av_push(a,b)           Perl_av_push(aTHX_ a,b)
 #define av_shift(a)            Perl_av_shift(aTHX_ a)
 #define av_store(a,b,c)                Perl_av_store(aTHX_ a,b,c)
-#define av_top_index(a)                Perl_av_top_index(aTHX_ a)
 #define av_undef(a)            Perl_av_undef(aTHX_ a)
 #define av_unshift(a,b)                Perl_av_unshift(aTHX_ a,b)
 #define block_end(a,b)         Perl_block_end(aTHX_ a,b)
 #define mg_size(a)             Perl_mg_size(aTHX_ a)
 #define mini_mktime            Perl_mini_mktime
 #define moreswitches(a)                Perl_moreswitches(aTHX_ a)
+#define mortal_getenv          Perl_mortal_getenv
 #define mro_get_linear_isa(a)  Perl_mro_get_linear_isa(aTHX_ a)
 #define mro_method_changed_in(a)       Perl_mro_method_changed_in(aTHX_ a)
 #define my_atof(a)             Perl_my_atof(aTHX_ a)
 #define utf8_hop_safe          Perl_utf8_hop_safe
 #define utf8_length(a,b)       Perl_utf8_length(aTHX_ a,b)
 #define utf8_to_bytes(a,b)     Perl_utf8_to_bytes(aTHX_ a,b)
+#ifndef NO_MATHOMS
 #define utf8_to_uvchr(a,b)     Perl_utf8_to_uvchr(aTHX_ a,b)
+#endif
 #define utf8_to_uvchr_buf_helper(a,b,c)        Perl_utf8_to_uvchr_buf_helper(aTHX_ a,b,c)
 #ifndef NO_MATHOMS
 #define utf8_to_uvuni(a,b)     Perl_utf8_to_uvuni(aTHX_ a,b)
 #endif
 #define utf8_to_uvuni_buf(a,b,c)       Perl_utf8_to_uvuni_buf(aTHX_ a,b,c)
 #define utf8n_to_uvchr_msgs    Perl_utf8n_to_uvchr_msgs
+#ifndef NO_MATHOMS
 #define utf8n_to_uvuni(a,b,c,d)        Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
+#endif
 #define uvoffuni_to_utf8_flags_msgs(a,b,c,d)   Perl_uvoffuni_to_utf8_flags_msgs(aTHX_ a,b,c,d)
 #define uvuni_to_utf8(a,b)     Perl_uvuni_to_utf8(aTHX_ a,b)
+#ifndef NO_MATHOMS
 #define uvuni_to_utf8_flags(a,b,c)     Perl_uvuni_to_utf8_flags(aTHX_ a,b,c)
+#endif
 #define valid_utf8_to_uvchr    Perl_valid_utf8_to_uvchr
 #ifndef NO_MATHOMS
 #define valid_utf8_to_uvuni(a,b)       Perl_valid_utf8_to_uvuni(aTHX_ a,b)
 #define dump_mstats(a)         Perl_dump_mstats(aTHX_ a)
 #define get_mstats(a,b,c)      Perl_get_mstats(aTHX_ a,b,c)
 #endif
-#if defined(PERL_GLOBAL_STRUCT)
-#define GetVars()              Perl_GetVars(aTHX)
-#define free_global_struct(a)  Perl_free_global_struct(aTHX_ a)
-#define init_global_struct()   Perl_init_global_struct(aTHX)
-#endif
 #if defined(PERL_IMPLICIT_CONTEXT)
 #define croak_nocontext                Perl_croak_nocontext
 #define deb_nocontext          Perl_deb_nocontext
 #define PerlIO_unread(a,b,c)   Perl_PerlIO_unread(aTHX_ a,b,c)
 #define PerlIO_write(a,b,c)    Perl_PerlIO_write(aTHX_ a,b,c)
 #endif
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
+#if defined(WIN32) || defined(VMS)
 #define do_aspawn(a,b,c)       Perl_do_aspawn(aTHX_ a,b,c)
 #define do_spawn(a)            Perl_do_spawn(aTHX_ a)
 #define do_spawn_nowait(a)     Perl_do_spawn_nowait(aTHX_ a)
 #define _inverse_folds(a,b,c)  Perl__inverse_folds(aTHX_ a,b,c)
 #define append_utf8_from_native_byte   Perl_append_utf8_from_native_byte
 #define av_reify(a)            Perl_av_reify(aTHX_ a)
+#define cntrl_to_mnemonic      Perl_cntrl_to_mnemonic
 #define current_re_engine()    Perl_current_re_engine(aTHX)
 #define cv_ckproto_len_flags(a,b,c,d,e)        Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
+#define do_uniprop_match       Perl_do_uniprop_match
 #define get_and_check_backslash_N_name(a,b,c,d)        Perl_get_and_check_backslash_N_name(aTHX_ a,b,c,d)
+#define get_deprecated_property_msg    Perl_get_deprecated_property_msg
+#define get_prop_definition(a) Perl_get_prop_definition(aTHX_ a)
+#define get_prop_values                Perl_get_prop_values
 #define grok_atoUV             Perl_grok_atoUV
+#define load_charnames(a,b,c,d)        Perl_load_charnames(aTHX_ a,b,c,d)
 #define mg_find_mglob(a)       Perl_mg_find_mglob(aTHX_ a)
 #define multiconcat_stringify(a)       Perl_multiconcat_stringify(aTHX_ a)
 #define multideref_stringify(a,b)      Perl_multideref_stringify(aTHX_ a,b)
 #  if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
 #define my_memrchr             S_my_memrchr
 #  endif
+#  if !(!defined(PERL_EXT_RE_BUILD))
+#    if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+#define get_re_gclass_nonbitmap_data(a,b,c,d,e,f)      Perl_get_re_gclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
+#    endif
+#  endif
 #  if !defined(PERL_EXT_RE_BUILD)
 #    if defined(PERL_IN_REGCOMP_C)
 #define _append_range_to_invlist(a,b,c)        S__append_range_to_invlist(aTHX_ a,b,c)
 #define invlist_set_previous_index     S_invlist_set_previous_index
 #define invlist_trim           S_invlist_trim
 #    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)
+#    endif
 #  endif
 #  if defined(DEBUGGING)
 #    if defined(PERL_IN_REGCOMP_C)
 #  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
 #define add_multi_match(a,b,c) S_add_multi_match(aTHX_ a,b,c)
 #define change_engine_size(a,b)        S_change_engine_size(aTHX_ a,b)
-#define cntrl_to_mnemonic      S_cntrl_to_mnemonic
+#define compile_wildcard(a,b,c)        S_compile_wildcard(aTHX_ a,b,c)
 #define compute_EXACTish       S_compute_EXACTish
 #define construct_ahocorasick_from_trie(a,b,c) S_construct_ahocorasick_from_trie(aTHX_ a,b,c)
 #define edit_distance          S_edit_distance
+#define execute_wildcard(a,b,c,d,e,f,g)        S_execute_wildcard(aTHX_ a,b,c,d,e,f,g)
 #define find_first_differing_byte_pos  S_find_first_differing_byte_pos
 #define get_ANYOFM_contents(a) S_get_ANYOFM_contents(aTHX_ a)
 #define get_ANYOF_cp_list_for_ssc(a,b) S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
 #define grok_bslash_N(a,b,c,d,e,f,g)   S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
 #define handle_named_backref(a,b,c,d)  S_handle_named_backref(aTHX_ a,b,c,d)
+#define handle_names_wildcard(a,b,c,d) S_handle_names_wildcard(aTHX_ a,b,c,d)
 #define handle_possible_posix(a,b,c,d,e)       S_handle_possible_posix(aTHX_ a,b,c,d,e)
 #define handle_regex_sets(a,b,c,d,e)   S_handle_regex_sets(aTHX_ a,b,c,d,e)
-#define handle_user_defined_property(a,b,c,d,e,f,g,h,i,j)      Perl_handle_user_defined_property(aTHX_ a,b,c,d,e,f,g,h,i,j)
+#define handle_user_defined_property(a,b,c,d,e,f,g,h,i,j)      S_handle_user_defined_property(aTHX_ a,b,c,d,e,f,g,h,i,j)
 #define invlist_contents(a,b)  S_invlist_contents(aTHX_ a,b)
 #define invlist_is_iterating   S_invlist_is_iterating
 #define invlist_lowest         S_invlist_lowest
 #define nextchar(a)            S_nextchar(aTHX_ a)
 #define output_posix_warnings(a,b)     S_output_posix_warnings(aTHX_ a,b)
 #define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a)
-#define parse_uniprop_string(a,b,c,d,e,f,g,h,i)        Perl_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i)
+#define parse_uniprop_string(a,b,c,d,e,f,g,h,i,j)      S_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i,j)
 #define populate_ANYOF_from_invlist(a,b)       S_populate_ANYOF_from_invlist(aTHX_ a,b)
+#define rck_elide_nothing(a)   S_rck_elide_nothing(aTHX_ a)
 #define reg(a,b,c,d)           S_reg(aTHX_ a,b,c,d)
 #define reg2Lanode(a,b,c,d)    S_reg2Lanode(aTHX_ a,b,c,d)
 #define reg_node(a,b)          S_reg_node(aTHX_ a,b)
 #define reginsert(a,b,c,d)     S_reginsert(aTHX_ a,b,c,d)
 #define regnode_guts(a,b,c,d)  S_regnode_guts(aTHX_ a,b,c,d)
 #define regpiece(a,b,c)                S_regpiece(aTHX_ a,b,c)
+#define regpnode(a,b,c)                S_regpnode(aTHX_ a,b,c)
 #define regtail(a,b,c,d)       S_regtail(aTHX_ a,b,c,d)
 #define scan_commit(a,b,c,d)   S_scan_commit(aTHX_ a,b,c,d)
 #define set_ANYOF_arg(a,b,c,d,e)       S_set_ANYOF_arg(aTHX_ a,b,c,d,e)
 #define ssc_is_cp_posixl_init  S_ssc_is_cp_posixl_init
 #define ssc_or(a,b,c)          S_ssc_or(aTHX_ a,b,c)
 #define ssc_union(a,b,c)       S_ssc_union(aTHX_ a,b,c)
-#define study_chunk(a,b,c,d,e,f,g,h,i,j,k)     S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
+#define study_chunk(a,b,c,d,e,f,g,h,i,j,k,l)   S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l)
 #  endif
 #  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)
 #ifndef PERL_IMPLICIT_CONTEXT
 #define re_printf              Perl_re_printf
 #endif
 #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) || defined(PERL_IN_DQUOTE_C)
-#define form_short_octal_warning(a,b)  S_form_short_octal_warning(aTHX_ a,b)
-#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)   Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
-#define grok_bslash_x(a,b,c,d,e,f,g)   Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g)
+#  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_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
 #endif
 #ifdef PERL_CORE
 #define PerlLIO_dup2_cloexec(a,b)      Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
 #define ck_tell(a)             Perl_ck_tell(aTHX_ a)
 #define ck_trunc(a)            Perl_ck_trunc(aTHX_ a)
 #define closest_cop(a,b,c,d)   Perl_closest_cop(aTHX_ a,b,c,d)
+#define cmpchain_extend(a,b,c) Perl_cmpchain_extend(aTHX_ a,b,c)
+#define cmpchain_finish(a)     Perl_cmpchain_finish(aTHX_ a)
+#define cmpchain_start(a,b,c)  Perl_cmpchain_start(aTHX_ a,b,c)
 #define core_prototype(a,b,c,d)        Perl_core_prototype(aTHX_ a,b,c,d)
 #define coresub_op(a,b,c)      Perl_coresub_op(aTHX_ a,b,c)
 #define create_eval_scope(a,b) Perl_create_eval_scope(aTHX_ a,b)
 #  if defined(PERL_IN_PP_HOT_C)
 #define do_oddball(a,b)                S_do_oddball(aTHX_ a,b)
 #define opmethod_stash(a)      S_opmethod_stash(aTHX_ a)
+#define should_we_output_Debug_r(a)    S_should_we_output_Debug_r(aTHX_ a)
 #  endif
 #  if defined(PERL_IN_PP_PACK_C)
 #define div128(a,b)            S_div128(aTHX_ a,b)
 #  endif
 #  if defined(PERL_IN_PP_SORT_C)
 #define amagic_cmp(a,b)                S_amagic_cmp(aTHX_ a,b)
+#define amagic_cmp_desc(a,b)   S_amagic_cmp_desc(aTHX_ a,b)
 #define amagic_i_ncmp(a,b)     S_amagic_i_ncmp(aTHX_ a,b)
+#define amagic_i_ncmp_desc(a,b)        S_amagic_i_ncmp_desc(aTHX_ a,b)
 #define amagic_ncmp(a,b)       S_amagic_ncmp(aTHX_ a,b)
+#define amagic_ncmp_desc(a,b)  S_amagic_ncmp_desc(aTHX_ a,b)
+#define cmp_desc(a,b)          S_cmp_desc(aTHX_ a,b)
 #define sortcv(a,b)            S_sortcv(aTHX_ a,b)
 #define sortcv_stacked(a,b)    S_sortcv_stacked(aTHX_ a,b)
 #define sortcv_xsub(a,b)       S_sortcv_xsub(aTHX_ a,b)
+#define sortsv_flags_impl(a,b,c,d)     S_sortsv_flags_impl(aTHX_ a,b,c,d)
 #define sv_i_ncmp(a,b)         S_sv_i_ncmp(aTHX_ a,b)
+#define sv_i_ncmp_desc(a,b)    S_sv_i_ncmp_desc(aTHX_ a,b)
 #define sv_ncmp(a,b)           S_sv_ncmp(aTHX_ a,b)
+#define sv_ncmp_desc(a,b)      S_sv_ncmp_desc(aTHX_ a,b)
 #    if defined(USE_LOCALE_COLLATE)
 #define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
+#define amagic_cmp_locale_desc(a,b)    S_amagic_cmp_locale_desc(aTHX_ a,b)
+#define cmp_locale_desc(a,b)   S_cmp_locale_desc(aTHX_ a,b)
 #    endif
 #  endif
 #  if defined(PERL_IN_PP_SYS_C)