#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER \
assert(ppaddr); assert(xop)
/* PERL_CALLCONV const XOP * Perl_custom_op_xop(pTHX_ const OP *o)
+ __attribute__warn_unused_result__
__attribute__pure__; */
PERL_CALLCONV void Perl_cv_ckproto_len_flags(pTHX_ const CV* cv, const GV* gv, const char* p, const STRLEN len, const U32 flags);
#define PERL_ARGS_ASSERT_FIND_SCRIPT \
assert(scriptname)
PERL_CALLCONV I32 Perl_foldEQ(const char* a, const char* b, I32 len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_FOLDEQ \
assert(a); assert(b)
PERL_CALLCONV I32 Perl_foldEQ_latin1(const char* a, const char* b, I32 len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \
assert(a); assert(b)
PERL_CALLCONV I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \
assert(a); assert(b)
__attribute__pure__; */
PERL_STATIC_INLINE bool S_is_c9strict_utf8_string(const U8 *s, const STRLEN len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING \
assert(s)
__attribute__warn_unused_result__;
PERL_STATIC_INLINE bool S_is_strict_utf8_string(const U8 *s, const STRLEN len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING \
assert(s)
assert(p)
PERL_STATIC_INLINE bool Perl_is_utf8_string(const U8 *s, const STRLEN len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_IS_UTF8_STRING \
assert(s)
PERL_STATIC_INLINE bool S_is_utf8_string_flags(const U8 *s, const STRLEN len, const U32 flags)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS \
assert(s)
assert(p)
/* PERL_CALLCONV bool is_utf8_valid_partial_char(const U8 * const s, const U8 * const e)
+ __attribute__warn_unused_result__
__attribute__pure__; */
PERL_STATIC_INLINE bool S_is_utf8_valid_partial_char_flags(const U8 * const s, const U8 * const e, const U32 flags)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS \
assert(s); assert(e)
#define PERL_ARGS_ASSERT_JMAYBE \
assert(o)
PERL_CALLCONV I32 Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_KEYWORD \
assert(name)
#define PERL_ARGS_ASSERT_REQUIRE_PV \
assert(pv)
PERL_CALLCONV char* Perl_rninstr(const char* big, const char* bigend, const char* little, const char* lend)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_RNINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
assert(sv)
PERL_CALLCONV void Perl_sv_free_arenas(pTHX);
PERL_CALLCONV SV* Perl_sv_get_backrefs(SV *const sv)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_SV_GET_BACKREFS \
assert(sv)
#define PERL_ARGS_ASSERT_UTF8_HOP \
assert(s)
+PERL_STATIC_INLINE U8* Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_UTF8_HOP_BACK \
+ assert(s); assert(start)
+
+PERL_STATIC_INLINE U8* Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD \
+ assert(s); assert(end)
+
+PERL_STATIC_INLINE U8* Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_UTF8_HOP_SAFE \
+ assert(s); assert(start); assert(end)
+
PERL_CALLCONV STRLEN Perl_utf8_length(pTHX_ const U8* s, const U8 *e)
__attribute__warn_unused_result__
__attribute__pure__;
#endif
#if !(defined(HAS_MEMMEM))
PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_NINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
#endif
#if !(defined(WIN32))
/* PERL_CALLCONV char* my_setlocale(pTHX_ int category, const char* locale)
+ __attribute__warn_unused_result__
__attribute__pure__; */
#endif
#endif
#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
PERL_CALLCONV int Perl_my_memcmp(const void* vs1, const void* vs2, size_t len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_MY_MEMCMP \
assert(vs1); assert(vs2)
#endif
#if !defined(HAS_SIGNBIT)
PERL_CALLCONV int Perl_signbit(NV f)
+ __attribute__warn_unused_result__
__attribute__pure__;
#endif
assert(s); assert(e)
# endif
#endif
+#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
+# if defined(PERL_IN_REGCOMP_C)
+STATIC void S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV * stack, const IV fence, AV * fence_stack);
+#define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES \
+ assert(pRExC_state); assert(stack); assert(fence_stack)
+# endif
+#endif
#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_DUMP_SV_CHILD \
#endif
#if defined(HAS_MEMMEM)
PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_NINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
#define PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT \
assert(pRExC_state); assert(node); assert(flagp)
STATIC const char * S_cntrl_to_mnemonic(const U8 c)
+ __attribute__warn_unused_result__
__attribute__pure__;
PERL_STATIC_INLINE U8 S_compute_EXACTish(RExC_state_t *pRExC_state);
#define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \
assert(pRExC_state); assert(source)
STATIC int S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_EDIT_DISTANCE \
assert(src); assert(tgt)
#define PERL_ARGS_ASSERT_REGCLASS \
assert(pRExC_state); assert(flagp)
STATIC unsigned int S_regex_set_precedence(const U8 my_operator)
+ __attribute__warn_unused_result__
__attribute__pure__;
STATIC void S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth);
#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
assert(rex); assert(scan)
-STATIC void S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p);
+STATIC void S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p _pDEPTH);
+#define PERL_ARGS_ASSERT_REGCP_RESTORE \
+ assert(rex); assert(maxopenparen_p)
+STATIC void S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p _pDEPTH);
#define PERL_ARGS_ASSERT_REGCPPOP \
assert(rex); assert(maxopenparen_p)
-STATIC CHECKPOINT S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen);
+STATIC CHECKPOINT S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen _pDEPTH);
#define PERL_ARGS_ASSERT_REGCPPUSH \
assert(rex)
STATIC U8* S_reghop3(U8 *s, SSize_t off, const U8 *lim)
#define PERL_ARGS_ASSERT_REGMATCH \
assert(reginfo); assert(startpos); assert(prog)
-STATIC I32 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, regmatch_info *const reginfo, I32 max, int depth)
+STATIC I32 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, regmatch_info *const reginfo, I32 max _pDEPTH)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_REGREPEAT \
assert(prog); assert(startposp); assert(p); assert(reginfo)
STATIC int S_intuit_more(pTHX_ char *s);
#define PERL_ARGS_ASSERT_INTUIT_MORE \
assert(s)
-STATIC I32 S_lop(pTHX_ I32 f, int x, char *s);
+STATIC I32 S_lop(pTHX_ I32 f, U8 x, char *s);
#define PERL_ARGS_ASSERT_LOP \
assert(s)
PERL_STATIC_NO_RET void S_missingterm(pTHX_ char *s)
#define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW \
assert(s); assert(e)
+PERL_STATIC_INLINE bool S_isFF_OVERLONG(const U8 * const s, const STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_ISFF_OVERLONG \
+ assert(s)
+
PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, const char * const swashname, SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_IS_UTF8_COMMON \
STATIC U8 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp)
__attribute__warn_unused_result__;
-STATIC char * S_unexpected_non_continuation_text(pTHX_ const U8 * const s, const STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
+STATIC char * S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \
assert(s)
#endif
#if defined(WIN32)
PERL_CALLCONV char* Perl_my_setlocale(pTHX_ int category, const char* locale)
+ __attribute__warn_unused_result__
__attribute__pure__;
PERL_CALLCONV_NO_RET void win32_croak_not_implemented(const char * fname)