X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/5b6f744373565ad7bd6bbd484c9e09bc90a0125e..79bcf1318d6280d492396ce01959aed43fee8707:/proto.h diff --git a/proto.h b/proto.h index f351644..649b6d3 100644 --- a/proto.h +++ b/proto.h @@ -145,66 +145,36 @@ PERL_CALLCONV bool Perl__is_uni_perl_idstart(pTHX_ UV c) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT__IS_UNI_PERL_IDSTART -PERL_CALLCONV bool Perl__is_utf8_FOO(pTHX_ U8 classnum, const U8 * const p, const char * const name, const char * const alternative, const bool use_utf8, const bool use_locale, const char * const file, const unsigned line) +PERL_CALLCONV bool Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p, const U8 * const e) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT__IS_UTF8_FOO \ - assert(p); assert(name); assert(alternative); assert(file) - -PERL_CALLCONV bool Perl__is_utf8_FOO_with_len(pTHX_ const U8 classnum, const U8 *p, const U8 * const e) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_FOO_WITH_LEN \ assert(p); assert(e) -PERL_CALLCONV bool Perl__is_utf8_idcont(pTHX_ const U8 *p) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_IDCONT \ - assert(p) - -PERL_CALLCONV bool Perl__is_utf8_idstart(pTHX_ const U8 *p) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_IDSTART \ - assert(p) - -PERL_CALLCONV bool Perl__is_utf8_mark(pTHX_ const U8 *p) +PERL_CALLCONV bool Perl__is_utf8_perl_idcont(pTHX_ const U8 *p, const U8 * const e) __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_MARK \ - assert(p) - -PERL_CALLCONV bool Perl__is_utf8_perl_idcont_with_len(pTHX_ const U8 *p, const U8 * const e) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT_WITH_LEN \ +#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT \ assert(p); assert(e) -PERL_CALLCONV bool Perl__is_utf8_perl_idstart_with_len(pTHX_ const U8 *p, const U8 * const e) +PERL_CALLCONV bool Perl__is_utf8_perl_idstart(pTHX_ const U8 *p, const U8 * const e) __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART_WITH_LEN \ +#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \ assert(p); assert(e) -PERL_CALLCONV bool Perl__is_utf8_xidcont(pTHX_ const U8 *p) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_XIDCONT \ - assert(p) - -PERL_CALLCONV bool Perl__is_utf8_xidstart(pTHX_ const U8 *p) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__IS_UTF8_XIDSTART \ - assert(p) - PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags); #define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \ assert(p); assert(lenp) -PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, U8 flags, const char * const file, const int line); +PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, U8 flags); #define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \ - assert(p); assert(ustrp); assert(file) -PERL_CALLCONV UV Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags, const char * const file, const int line); + assert(p); assert(ustrp) +PERL_CALLCONV UV Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags); #define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS \ - assert(p); assert(ustrp); assert(file) -PERL_CALLCONV UV Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags, const char * const file, const int line); + assert(p); assert(ustrp) +PERL_CALLCONV UV Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags); #define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS \ - assert(p); assert(ustrp); assert(file) -PERL_CALLCONV UV Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, bool flags, const char * const file, const int line); + assert(p); assert(ustrp) +PERL_CALLCONV UV Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, bool flags); #define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS \ - assert(p); assert(ustrp); assert(file) + assert(p); assert(ustrp) PERL_CALLCONV UV Perl__utf8n_to_uvchr_msgs_helper(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors, AV ** msgs); #define PERL_ARGS_ASSERT__UTF8N_TO_UVCHR_MSGS_HELPER \ assert(s) @@ -731,6 +701,10 @@ PERL_CALLCONV_NO_RET void Perl_croak_xs_usage(const CV *const cv, const char *co #define PERL_ARGS_ASSERT_CROAK_XS_USAGE \ assert(cv); assert(params) +PERL_CALLCONV Signal_t Perl_csighandler1(int sig); +#define PERL_ARGS_ASSERT_CSIGHANDLER1 +PERL_CALLCONV Signal_t Perl_csighandler3(int sig, Siginfo_t *info, void *uap); +#define PERL_ARGS_ASSERT_CSIGHANDLER3 PERL_CALLCONV regexp_engine const * Perl_current_re_engine(pTHX); #define PERL_ARGS_ASSERT_CURRENT_RE_ENGINE #ifndef NO_MATHOMS @@ -1034,9 +1008,6 @@ PERL_CALLCONV char* Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bige #define PERL_ARGS_ASSERT_FBM_INSTR \ assert(big); assert(bigend); assert(littlestr) -PERL_CALLCONV bool Perl_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen); -#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \ - assert(name) PERL_CALLCONV SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv); #define PERL_ARGS_ASSERT_FILTER_ADD PERL_CALLCONV void Perl_filter_del(pTHX_ filter_t funcp); @@ -1581,17 +1552,12 @@ PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_INVERT +PERL_CALLCONV void Perl_invmap_dump(pTHX_ SV* invlist, UV * map); +#define PERL_ARGS_ASSERT_INVMAP_DUMP \ + assert(invlist); assert(map) PERL_CALLCONV bool Perl_io_close(pTHX_ IO* io, GV *gv, bool not_implicit, bool warn_on_fail); #define PERL_ARGS_ASSERT_IO_CLOSE \ assert(io) -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_isALNUM_lazy(pTHX_ const char* p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_ISALNUM_LAZY \ - assert(p) -#endif - #ifndef PERL_NO_INLINE_FUNCTIONS PERL_STATIC_INLINE Size_t Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e) __attribute__warn_unused_result__; @@ -1599,14 +1565,6 @@ PERL_STATIC_INLINE Size_t Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const assert(s0); assert(e) #endif -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_isIDFIRST_lazy(pTHX_ const char* p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_ISIDFIRST_LAZY \ - assert(p) -#endif - #ifndef PERL_NO_INLINE_FUNCTIONS PERL_STATIC_INLINE Size_t Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e) __attribute__warn_unused_result__; @@ -1665,266 +1623,6 @@ PERL_STATIC_INLINE bool Perl_is_strict_utf8_string_loclen(const U8 *s, STRLEN le assert(s) #endif #ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_alnum(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_ALNUM -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_alnum_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_ALNUM_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_alnumc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_ALNUMC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_alnumc_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_ALNUMC_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_alpha(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_ALPHA -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_alpha_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_ALPHA_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_ascii(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_ASCII -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_ascii_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_ASCII_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_blank(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_BLANK -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_blank_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_BLANK_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_cntrl(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_CNTRL -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_cntrl_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_CNTRL_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_digit(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_DIGIT -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_digit_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_DIGIT_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_graph(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_GRAPH -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_graph_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_GRAPH_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_idfirst(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_IDFIRST -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_idfirst_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_IDFIRST_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_lower(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_LOWER -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_lower_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_LOWER_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_print(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_PRINT -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_print_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_PRINT_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_punct(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_PUNCT -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_punct_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_PUNCT_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_space(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_SPACE -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_space_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_SPACE_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_upper(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_UPPER -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_upper_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UNI_UPPER_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_xdigit(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_XDIGIT -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_uni_xdigit_lc(pTHX_ UV c) - __attribute__deprecated__ - __attribute__warn_unused_result__ - __attribute__pure__; -#define PERL_ARGS_ASSERT_IS_UNI_XDIGIT_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_alnum(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_ALNUM \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_alnumc(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_ALNUMC \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_alpha(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_ALPHA \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_ascii(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_ASCII \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_blank(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_BLANK \ - assert(p) -#endif - -#ifndef NO_MATHOMS PERL_CALLCONV STRLEN Perl_is_utf8_char(const U8 *s) __attribute__deprecated__; #define PERL_ARGS_ASSERT_IS_UTF8_CHAR \ @@ -1942,22 +1640,6 @@ PERL_CALLCONV STRLEN Perl_is_utf8_char_helper(const U8 * const s, const U8 * e, #define PERL_ARGS_ASSERT_IS_UTF8_CHAR_HELPER \ assert(s); assert(e) -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_cntrl(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_CNTRL \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_digit(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_DIGIT \ - assert(p) -#endif - /* PERL_CALLCONV bool is_utf8_fixed_width_buf_flags(const U8 * const s, STRLEN len, const U32 flags); */ #define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_FLAGS /* PERL_CALLCONV bool is_utf8_fixed_width_buf_loc_flags(const U8 * const s, STRLEN len, const U8 **ep, const U32 flags); */ @@ -1967,30 +1649,6 @@ PERL_STATIC_INLINE bool Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * con #define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS \ assert(s) #endif -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_graph(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_GRAPH \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_idcont(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_IDCONT \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_idfirst(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_IDFIRST \ - assert(p) -#endif - /* PERL_CALLCONV bool is_utf8_invariant_string(const U8* const s, STRLEN len) __attribute__warn_unused_result__; */ #define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING @@ -2002,70 +1660,6 @@ PERL_STATIC_INLINE bool Perl_is_utf8_invariant_string_loc(const U8* const s, STR assert(s) #endif -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_lower(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_LOWER \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_mark(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_MARK \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_perl_space(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_PERL_SPACE \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_perl_word(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_PERL_WORD \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_posix_digit(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_POSIX_DIGIT \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_print(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_PRINT \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_punct(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_PUNCT \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_space(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_SPACE \ - assert(p) -#endif - /* PERL_CALLCONV bool is_utf8_string(const U8 *s, STRLEN len) __attribute__warn_unused_result__; */ #define PERL_ARGS_ASSERT_IS_UTF8_STRING @@ -2094,14 +1688,6 @@ PERL_STATIC_INLINE bool Perl_is_utf8_string_loclen_flags(const U8 *s, STRLEN len #define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS \ assert(s) #endif -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_upper(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_UPPER \ - assert(p) -#endif - /* PERL_CALLCONV bool is_utf8_valid_partial_char(const U8 * const s, const U8 * const e) __attribute__warn_unused_result__ __attribute__pure__; */ @@ -2114,30 +1700,6 @@ PERL_STATIC_INLINE bool Perl_is_utf8_valid_partial_char_flags(const U8 * const s assert(s); assert(e) #endif -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_xdigit(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_XDIGIT \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_xidcont(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_XIDCONT \ - assert(p) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV bool Perl_is_utf8_xidfirst(pTHX_ const U8 *p) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST \ - assert(p) -#endif - PERL_CALLCONV bool Perl_isinfnan(NV nv) __attribute__warn_unused_result__ __attribute__pure__; @@ -3089,6 +2651,8 @@ PERL_CALLCONV int perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc PERL_CALLCONV int perl_run(PerlInterpreter *my_perl); #define PERL_ARGS_ASSERT_PERL_RUN \ assert(my_perl) +PERL_CALLCONV Signal_t Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe); +#define PERL_ARGS_ASSERT_PERLY_SIGHANDLER PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP* pm); #define PERL_ARGS_ASSERT_PMOP_DUMP PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor); @@ -3556,6 +3120,10 @@ PERL_CALLCONV void Perl_setfd_inhexec_for_sysfd(pTHX_ int fd); PERL_CALLCONV HEK* Perl_share_hek(pTHX_ const char* str, SSize_t len, U32 hash); #define PERL_ARGS_ASSERT_SHARE_HEK \ assert(str) +PERL_CALLCONV Signal_t Perl_sighandler1(int sig); +#define PERL_ARGS_ASSERT_SIGHANDLER1 +PERL_CALLCONV Signal_t Perl_sighandler3(int sig, Siginfo_t *info, void *uap); +#define PERL_ARGS_ASSERT_SIGHANDLER3 PERL_CALLCONV char* Perl_skipspace_flags(pTHX_ char *s, U32 flags) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_SKIPSPACE_FLAGS \ @@ -4212,14 +3780,6 @@ PERL_CALLCONV void Perl_sv_vsetpvf_mg(pTHX_ SV *const sv, const char *const pat, PERL_CALLCONV void Perl_sv_vsetpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted); #define PERL_ARGS_ASSERT_SV_VSETPVFN \ assert(sv); assert(pat) -PERL_CALLCONV UV Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8); -#define PERL_ARGS_ASSERT_SWASH_FETCH \ - assert(swash); assert(ptr) -PERL_CALLCONV SV* Perl_swash_init(pTHX_ const char* pkg, const char* name, SV* listsv, I32 minbits, I32 none) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_SWASH_INIT \ - assert(pkg); assert(name); assert(listsv) - PERL_CALLCONV void Perl_switch_to_global_locale(void); #define PERL_ARGS_ASSERT_SWITCH_TO_GLOBAL_LOCALE PERL_CALLCONV bool Perl_sync_locale(void); @@ -4251,61 +3811,12 @@ PERL_CALLCONV SSize_t Perl_tmps_grow_p(pTHX_ SSize_t ix); PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp); #define PERL_ARGS_ASSERT_TO_UNI_LOWER \ assert(p); assert(lenp) -#ifndef NO_MATHOMS -PERL_CALLCONV U32 Perl_to_uni_lower_lc(pTHX_ U32 c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_TO_UNI_LOWER_LC -#endif - PERL_CALLCONV UV Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp); #define PERL_ARGS_ASSERT_TO_UNI_TITLE \ assert(p); assert(lenp) -#ifndef NO_MATHOMS -PERL_CALLCONV U32 Perl_to_uni_title_lc(pTHX_ U32 c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_TO_UNI_TITLE_LC -#endif - PERL_CALLCONV UV Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp); #define PERL_ARGS_ASSERT_TO_UNI_UPPER \ assert(p); assert(lenp) -#ifndef NO_MATHOMS -PERL_CALLCONV U32 Perl_to_uni_upper_lc(pTHX_ U32 c) - __attribute__deprecated__ - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_TO_UNI_UPPER_LC -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) - __attribute__deprecated__; -#define PERL_ARGS_ASSERT_TO_UTF8_FOLD \ - assert(p); assert(ustrp) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) - __attribute__deprecated__; -#define PERL_ARGS_ASSERT_TO_UTF8_LOWER \ - assert(p); assert(ustrp) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV UV Perl_to_utf8_title(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) - __attribute__deprecated__; -#define PERL_ARGS_ASSERT_TO_UTF8_TITLE \ - assert(p); assert(ustrp) -#endif - -#ifndef NO_MATHOMS -PERL_CALLCONV UV Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) - __attribute__deprecated__; -#define PERL_ARGS_ASSERT_TO_UTF8_UPPER \ - assert(p); assert(ustrp) -#endif - PERL_CALLCONV bool Perl_try_amagic_bin(pTHX_ int method, int flags); #define PERL_ARGS_ASSERT_TRY_AMAGIC_BIN PERL_CALLCONV bool Perl_try_amagic_un(pTHX_ int method, int flags); @@ -4593,12 +4104,6 @@ STATIC const char* S_my_nl_langinfo(const int item, bool toggle); #define PERL_ARGS_ASSERT_MY_NL_LANGINFO # endif #endif -#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO)) -PERL_CALLCONV Signal_t Perl_csighandler(int sig); -#define PERL_ARGS_ASSERT_CSIGHANDLER -PERL_CALLCONV Signal_t Perl_sighandler(int sig); -#define PERL_ARGS_ASSERT_SIGHANDLER -#endif #if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)) PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd); #define PERL_ARGS_ASSERT_DO_EXEC \ @@ -4611,6 +4116,12 @@ PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *indexp, size_t size); assert(indexp) # endif #endif +#if !(defined(PERL_USE_3ARG_SIGHANDLER)) +PERL_CALLCONV Signal_t Perl_csighandler(int sig); +#define PERL_ARGS_ASSERT_CSIGHANDLER +PERL_CALLCONV Signal_t Perl_sighandler(int sig); +#define PERL_ARGS_ASSERT_SIGHANDLER +#endif #if !(defined(_MSC_VER)) PERL_CALLCONV_NO_RET int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg) __attribute__noreturn__; @@ -4726,9 +4237,6 @@ PERL_STATIC_INLINE void S_invlist_clear(pTHX_ SV* invlist); #define PERL_ARGS_ASSERT_INVLIST_CLEAR \ assert(invlist) #endif -STATIC void S_invlist_extend(pTHX_ SV* const invlist, const UV len); -#define PERL_ARGS_ASSERT_INVLIST_EXTEND \ - assert(invlist) #ifndef PERL_NO_INLINE_FUNCTIONS PERL_STATIC_INLINE UV S_invlist_max(SV* const invlist) __attribute__warn_unused_result__; @@ -4747,11 +4255,6 @@ STATIC void S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src); #define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC \ assert(dest); assert(src) #ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset); -#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \ - assert(invlist) -#endif -#ifndef PERL_NO_INLINE_FUNCTIONS PERL_STATIC_INLINE void S_invlist_set_previous_index(SV* const invlist, const IV index); #define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \ assert(invlist) @@ -4904,6 +4407,13 @@ PERL_CALLCONV bool Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report) #define PERL_ARGS_ASSERT_DO_EXEC3 \ assert(incmd) #endif +#if 0 /* Not currently used, but may be needed in the future */ +# if defined(PERL_IN_UTF8_C) +STATIC void S_warn_on_first_deprecated_use(pTHX_ const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line); +#define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \ + assert(name); assert(alternative); assert(file) +# endif +#endif #if defined (HAS_SOCKETPAIR) || (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && defined(AF_INET) && defined(PF_INET)) PERL_CALLCONV int Perl_PerlSock_socketpair_cloexec(pTHX_ int domain, int type, int protocol, int *pairfd) __attribute__warn_unused_result__; @@ -4960,7 +4470,7 @@ STATIC void S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, H STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV* sv, I32 indent, U32 depth); #define PERL_ARGS_ASSERT_DUMPUNTIL \ assert(r); assert(start); assert(node); assert(sv) -STATIC bool S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV* nonbitmap_invlist, SV* only_utf8_locale_invlist, const regnode * const node, const bool force_as_is_display); +STATIC bool S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV* nonbitmap_invlist, SV* only_utf8_locale_invlist, const regnode * const node, const U8 flags, const bool force_as_is_display); #define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \ assert(sv) STATIC SV* S_put_charclass_bitmap_innards_common(pTHX_ SV* invlist, SV* posixes, SV* only_utf8, SV* not_utf8, SV* only_utf8_locale, const bool invert); @@ -5064,12 +4574,6 @@ PERL_CALLCONV int Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd) assert(pipefd) #endif -#if defined(HAS_SIGACTION) && defined(SA_SIGINFO) -PERL_CALLCONV Signal_t Perl_csighandler(int sig, siginfo_t *info, void *uap); -#define PERL_ARGS_ASSERT_CSIGHANDLER -PERL_CALLCONV Signal_t Perl_sighandler(int sig, siginfo_t *info, void *uap); -#define PERL_ARGS_ASSERT_SIGHANDLER -#endif #if defined(HAS_SOCKET) PERL_CALLCONV int Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen) __attribute__warn_unused_result__; @@ -5346,35 +4850,30 @@ STATIC IO * S_openn_setup(pTHX_ GV *gv, char *mode, PerlIO **saveifp, PerlIO **s assert(gv); assert(mode); assert(saveifp); assert(saveofp); assert(savefd); assert(savetype) #endif #if defined(PERL_IN_DOOP_C) -STATIC Size_t S_do_trans_complex(pTHX_ SV * const sv) +STATIC Size_t S_do_trans_complex(pTHX_ SV * const sv, const OPtrans_map * const tbl) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX \ - assert(sv) - -STATIC Size_t S_do_trans_complex_utf8(pTHX_ SV * const sv) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX_UTF8 \ - assert(sv) + assert(sv); assert(tbl) -STATIC Size_t S_do_trans_count(pTHX_ SV * const sv) +STATIC Size_t S_do_trans_count(pTHX_ SV * const sv, const OPtrans_map * const tbl) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_DO_TRANS_COUNT \ - assert(sv) + assert(sv); assert(tbl) -STATIC Size_t S_do_trans_count_utf8(pTHX_ SV * const sv) +STATIC Size_t S_do_trans_count_invmap(pTHX_ SV * const sv, AV * const map) __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_DO_TRANS_COUNT_UTF8 \ - assert(sv) +#define PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP \ + assert(sv); assert(map) -STATIC Size_t S_do_trans_simple(pTHX_ SV * const sv) +STATIC Size_t S_do_trans_invmap(pTHX_ SV * const sv, AV * const map) __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \ - assert(sv) +#define PERL_ARGS_ASSERT_DO_TRANS_INVMAP \ + assert(sv); assert(map) -STATIC Size_t S_do_trans_simple_utf8(pTHX_ SV * const sv) +STATIC Size_t S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl) __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE_UTF8 \ - assert(sv) +#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \ + assert(sv); assert(tbl) #endif #if defined(PERL_IN_DUMP_C) @@ -5419,9 +4918,6 @@ PERL_STATIC_INLINE HV* S_gv_stashpvn_internal(pTHX_ const char* name, U32 namele #define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \ assert(name) #endif -#ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE HV* S_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char* name, U32 namelen, I32 flags); -#endif STATIC void S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type); #define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV \ assert(gv); assert(name) @@ -5437,6 +4933,9 @@ PERL_CALLCONV void Perl_sv_add_backref(pTHX_ SV *const tsv, SV *const sv); #define PERL_ARGS_ASSERT_SV_ADD_BACKREF \ assert(tsv); assert(sv) #endif +#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C) +PERL_CALLCONV HV* Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char* name, U32 namelen, I32 flags); +#endif #if defined(PERL_IN_HV_C) STATIC void S_clear_placeholders(pTHX_ HV *hv, U32 items); #define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS \ @@ -6029,20 +5528,9 @@ STATIC SV * S_space_join_names_mortal(pTHX_ char *const *array); #define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL #endif #if defined(PERL_IN_REGCOMP_C) -STATIC SV* S__make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT__MAKE_EXACTF_INVLIST \ - assert(pRExC_state); assert(node) - STATIC void S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist); #define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \ assert(pRExC_state); assert(invlist) -#ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST -#endif - STATIC U32 S_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_ADD_DATA \ @@ -6071,6 +5559,11 @@ STATIC int S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const S #define PERL_ARGS_ASSERT_EDIT_DISTANCE \ assert(src); assert(tgt) +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE Size_t S_find_first_differing_byte_pos(const U8 * s1, const U8 * s2, const Size_t max); +#define PERL_ARGS_ASSERT_FIND_FIRST_DIFFERING_BYTE_POS \ + assert(s1); assert(s2) +#endif STATIC SV * S_get_ANYOFM_contents(pTHX_ const regnode * n) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS \ @@ -6079,13 +5572,6 @@ STATIC SV * S_get_ANYOFM_contents(pTHX_ const regnode * n) STATIC SV* S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass* const node); #define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \ assert(pRExC_state); assert(node) -#ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE STRLEN* S_get_invlist_iter_addr(SV* invlist) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \ - assert(invlist) -#endif - STATIC bool S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode_offset* nodep, UV *code_point_p, int* cp_count, I32 *flagp, const bool strict, const U32 depth); #define PERL_ARGS_ASSERT_GROK_BSLASH_N \ assert(pRExC_state); assert(flagp) @@ -6103,15 +5589,10 @@ STATIC regnode_offset S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** PERL_CALLCONV SV * Perl_handle_user_defined_property(pTHX_ const char * name, const STRLEN name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, SV* contents, bool *user_defined_ptr, SV * msg, const STRLEN level); #define PERL_ARGS_ASSERT_HANDLE_USER_DEFINED_PROPERTY \ assert(name); assert(contents); assert(user_defined_ptr); assert(msg) -STATIC SV* S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_INVLIST_CONTENTS \ - assert(invlist) - #ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE UV S_invlist_highest(SV* const invlist) +PERL_STATIC_INLINE SV* S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style) __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_INVLIST_HIGHEST \ +#define PERL_ARGS_ASSERT_INVLIST_CONTENTS \ assert(invlist) #endif @@ -6123,19 +5604,11 @@ PERL_STATIC_INLINE bool S_invlist_is_iterating(SV* const invlist) #endif #ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE void S_invlist_iterfinish(SV* invlist); -#define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \ - assert(invlist) -#endif -#ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE void S_invlist_iterinit(SV* invlist); -#define PERL_ARGS_ASSERT_INVLIST_ITERINIT \ +PERL_STATIC_INLINE UV S_invlist_lowest(SV* const invlist) + __attribute__warn_unused_result__; +#define PERL_ARGS_ASSERT_INVLIST_LOWEST \ assert(invlist) #endif -STATIC bool S_invlist_iternext(SV* invlist, UV* start, UV* end) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \ - assert(invlist); assert(start); assert(end) STATIC bool S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc); #define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT \ @@ -6143,6 +5616,11 @@ STATIC bool S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ss STATIC U32 S_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan, UV *min_subtract, bool *unfolded_multi_char, U32 flags, regnode *val, U32 depth); #define PERL_ARGS_ASSERT_JOIN_EXACT \ assert(pRExC_state); assert(scan); assert(min_subtract); assert(unfolded_multi_char) +STATIC SV* S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node) + __attribute__warn_unused_result__; +#define PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST \ + assert(pRExC_state); assert(node) + STATIC I32 S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth); #define PERL_ARGS_ASSERT_MAKE_TRIE \ assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail) @@ -6284,11 +5762,62 @@ STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, S #define PERL_ARGS_ASSERT_STUDY_CHUNK \ assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last) #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) PERL_CALLCONV void Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char* const indent, SV* const invlist); #define PERL_ARGS_ASSERT__INVLIST_DUMP \ assert(file); assert(indent); assert(invlist) #endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE STRLEN* S_get_invlist_iter_addr(SV* invlist) + __attribute__warn_unused_result__; +#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \ + assert(invlist) +#endif + +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE void S_invlist_iterfinish(SV* invlist); +#define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \ + assert(invlist) +#endif +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE void S_invlist_iterinit(SV* invlist); +#define PERL_ARGS_ASSERT_INVLIST_ITERINIT \ + assert(invlist) +#endif +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE bool S_invlist_iternext(SV* invlist, UV* start, UV* end) + __attribute__warn_unused_result__; +#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \ + assert(invlist); assert(start); assert(end) +#endif + +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C) +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp) + __attribute__warn_unused_result__; +#define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST +#endif + +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE void S_invlist_extend(pTHX_ SV* const invlist, const UV len); +#define PERL_ARGS_ASSERT_INVLIST_EXTEND \ + assert(invlist) +#endif +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE UV S_invlist_highest(SV* const invlist) + __attribute__warn_unused_result__; +#define PERL_ARGS_ASSERT_INVLIST_HIGHEST \ + assert(invlist) +#endif + +#ifndef PERL_NO_INLINE_FUNCTIONS +PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset); +#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \ + assert(invlist) +#endif +#endif #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); #define PERL_ARGS_ASSERT__INVLISTEQ \ @@ -6310,7 +5839,7 @@ PERL_CALLCONV void Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode* #define PERL_ARGS_ASSERT_REGPROP \ assert(sv); assert(o) #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) #ifndef PERL_NO_INLINE_FUNCTIONS PERL_STATIC_INLINE bool S__invlist_contains_cp(SV* const invlist, const UV cp) __attribute__warn_unused_result__; @@ -6386,7 +5915,7 @@ PERL_STATIC_INLINE I32 S_regcurly(const char *s) #endif #endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) +#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__; #define PERL_ARGS_ASSERT__ADD_RANGE_TO_INVLIST @@ -6822,17 +6351,13 @@ STATIC int S_yywarn(pTHX_ const char *const s, U32 flags); assert(s) #endif #if defined(PERL_IN_UNIVERSAL_C) -STATIC bool S_isa_lookup(pTHX_ HV *stash, const char * const name, STRLEN len, U32 flags); -#define PERL_ARGS_ASSERT_ISA_LOOKUP \ - assert(stash); assert(name) +STATIC bool S_isa_lookup(pTHX_ HV *stash, SV *namesv, const char * name, STRLEN len, U32 flags); +STATIC bool S_sv_derived_from_svpvn(pTHX_ SV *sv, SV *namesv, const char * name, const STRLEN len, U32 flags); #endif #if defined(PERL_IN_UTF8_C) STATIC UV S__to_utf8_case(pTHX_ const UV uv1, const U8 *p, U8* ustrp, STRLEN *lenp, SV *invlist, const int * const invmap, const unsigned int * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal); #define PERL_ARGS_ASSERT__TO_UTF8_CASE \ assert(ustrp); assert(lenp); assert(invlist); assert(invmap); assert(normal) -STATIC U32 S_check_and_deprecate(pTHX_ const U8 * p, const U8 ** e, const unsigned type, const bool use_locale, const char * const file, const unsigned line); -#define PERL_ARGS_ASSERT_CHECK_AND_DEPRECATE \ - assert(p); assert(e); assert(file) STATIC UV S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV result, U8* const ustrp, STRLEN *lenp) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \ @@ -6853,16 +6378,9 @@ PERL_STATIC_INLINE int S_isFF_OVERLONG(const U8 * const s, const STRLEN len) #endif #ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV* const invlist) +PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, const U8 *const e, SV* const invlist) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_IS_UTF8_COMMON \ - assert(p) -#endif - -#ifndef PERL_NO_INLINE_FUNCTIONS -PERL_STATIC_INLINE bool S_is_utf8_common_with_len(pTHX_ const U8 *const p, const U8 *const e, SV* const invlist) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_IS_UTF8_COMMON_WITH_LEN \ assert(p); assert(e) #endif @@ -6878,16 +6396,6 @@ STATIC HV * S_new_msg_hv(pTHX_ const char * const message, U32 categories, U32 f #define PERL_ARGS_ASSERT_NEW_MSG_HV \ assert(message) -STATIC U8* S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val, const bool wants_value, const U8* const typestr) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE \ - assert(l); assert(lend); assert(min); assert(max); assert(val); assert(typestr) - -STATIC SV* S_swatch_get(pTHX_ SV* swash, UV start, UV span) - __attribute__warn_unused_result__; -#define PERL_ARGS_ASSERT_SWATCH_GET \ - assert(swash) - STATIC U8 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy) __attribute__warn_unused_result__; #define PERL_ARGS_ASSERT_TO_LOWER_LATIN1 @@ -6906,9 +6414,6 @@ STATIC char * S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLE #define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \ assert(s) -STATIC void S_warn_on_first_deprecated_use(pTHX_ const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line); -#define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \ - assert(name); assert(alternative); assert(file) #endif #if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C) PERL_CALLCONV UV Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s); @@ -6954,6 +6459,12 @@ PERL_CALLCONV Malloc_t Perl_mem_log_realloc(const UV n, const UV typesize, const STATIC void S_pidgone(pTHX_ Pid_t pid, int status); #define PERL_ARGS_ASSERT_PIDGONE #endif +#if defined(PERL_USE_3ARG_SIGHANDLER) +PERL_CALLCONV Signal_t Perl_csighandler(int sig, Siginfo_t *info, void *uap); +#define PERL_ARGS_ASSERT_CSIGHANDLER +PERL_CALLCONV Signal_t Perl_sighandler(int sig, Siginfo_t *info, void *uap); +#define PERL_ARGS_ASSERT_SIGHANDLER +#endif #if defined(UNLINK_ALL_VERSIONS) PERL_CALLCONV I32 Perl_unlnk(pTHX_ const char* f); #define PERL_ARGS_ASSERT_UNLNK \ @@ -7183,8 +6694,8 @@ PERL_CALLCONV SSize_t Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_ PERL_CALLCONV bool Perl_quadmath_format_needed(const char* format); #define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED \ assert(format) -PERL_CALLCONV const char* Perl_quadmath_format_single(const char* format); -#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_SINGLE \ +PERL_CALLCONV bool Perl_quadmath_format_valid(const char* format); +#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_VALID \ assert(format) #endif #if defined(WIN32)