Afp |SV* |mess |NN const char* pat|...
Ap |SV* |vmess |NN const char* pat|NULLOK va_list* args
p |void |qerror |NN SV* err
-Apd |void |sortsv |NN SV** array|size_t num_elts|SVCOMPARE_t cmp
-Apd |void |sortsv_flags |NN SV** array|size_t num_elts|SVCOMPARE_t cmp|U32 flags
+Apd |void |sortsv |NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp
+Apd |void |sortsv_flags |NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
Apd |int |mg_clear |NN SV* sv
Apd |int |mg_copy |NN SV* sv|NN SV* nsv|NULLOK const char* key|I32 klen
pd |void |mg_localize |NN SV* sv|NN SV* nsv
Es |CHECKPOINT|regcppush |I32 parenfloor
Es |char*|regcppop
Es |void |cache_re |NN regexp *prog
-ERs |U8* |reghop |NN U8 *pos|I32 off
ERsn |U8* |reghop3 |NN U8 *pos|I32 off|NN U8 *lim
-ERs |U8* |reghopmaybe |NN U8 *pos|I32 off
ERsn |U8* |reghopmaybe3 |NN U8 *pos|I32 off|NN U8 *lim
ERs |char* |find_byclass |NN regexp * prog|NN regnode *c|NN char *s|NN const char *strend|I32 norun
Es |void |to_utf8_substr |NN regexp * prog
#define regcppush S_regcppush
#define regcppop S_regcppop
#define cache_re S_cache_re
-#define reghop S_reghop
#define reghop3 S_reghop3
-#define reghopmaybe S_reghopmaybe
#define reghopmaybe3 S_reghopmaybe3
#define find_byclass S_find_byclass
#define to_utf8_substr S_to_utf8_substr
#define regcppush(a) S_regcppush(aTHX_ a)
#define regcppop() S_regcppop(aTHX)
#define cache_re(a) S_cache_re(aTHX_ a)
-#define reghop(a,b) S_reghop(aTHX_ a,b)
#define reghop3 S_reghop3
-#define reghopmaybe(a,b) S_reghopmaybe(aTHX_ a,b)
#define reghopmaybe3 S_reghopmaybe3
#define find_byclass(a,b,c,d,e) S_find_byclass(aTHX_ a,b,c,d,e)
#define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
__attribute__nonnull__(pTHX_1);
PERL_CALLCONV void Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp)
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
PERL_CALLCONV void Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
PERL_CALLCONV int Perl_mg_clear(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
STATIC void S_cache_re(pTHX_ regexp *prog)
__attribute__nonnull__(pTHX_1);
-STATIC U8* S_reghop(pTHX_ U8 *pos, I32 off)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-
STATIC U8* S_reghop3(U8 *pos, I32 off, U8 *lim)
__attribute__warn_unused_result__
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-STATIC U8* S_reghopmaybe(pTHX_ U8 *pos, I32 off)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-
STATIC U8* S_reghopmaybe3(U8 *pos, I32 off, U8 *lim)
__attribute__warn_unused_result__
__attribute__nonnull__(1)
#define CHR_SVLEN(sv) (do_utf8 ? sv_len_utf8(sv) : SvCUR(sv))
#define CHR_DIST(a,b) (PL_reg_match_utf8 ? utf8_distance(a,b) : a - b)
-#define reghop_c(pos,off) ((char*)reghop((U8*)pos, off))
-#define reghopmaybe_c(pos,off) ((char*)reghopmaybe((U8*)pos, off))
-#define HOP(pos,off) (PL_reg_match_utf8 ? reghop((U8*)pos, off) : (U8*)(pos + off))
-#define HOPMAYBE(pos,off) (PL_reg_match_utf8 ? reghopmaybe((U8*)pos, off) : (U8*)(pos + off))
-#define HOPc(pos,off) ((char*)HOP(pos,off))
-#define HOPMAYBEc(pos,off) ((char*)HOPMAYBE(pos,off))
-
-#define HOPBACK(pos, off) ( \
- (PL_reg_match_utf8) \
- ? reghopmaybe((U8*)pos, -off) \
+#define HOPc(pos,off) ((char *)(PL_reg_match_utf8 \
+ ? reghop3((U8*)pos, off, (U8*)(off >= 0 ? PL_regeol : PL_bostr)) \
+ : (U8*)(pos + off)))
+#define HOPBACKc(pos, off) ((char*) \
+ ((PL_reg_match_utf8) \
+ ? reghopmaybe3((U8*)pos, -off, ((U8*)(off < 0 ? PL_regeol : PL_bostr))) \
: (pos - off >= PL_bostr) \
? (U8*)(pos - off) \
- : (U8*)NULL \
+ : (U8*)NULL) \
)
-#define HOPBACKc(pos, off) (char*)HOPBACK(pos, off)
-#define reghop3_c(pos,off,lim) ((char*)reghop3((U8*)pos, off, (U8*)lim))
#define reghopmaybe3_c(pos,off,lim) ((char*)reghopmaybe3((U8*)pos, off, (U8*)lim))
#define HOP3(pos,off,lim) (PL_reg_match_utf8 ? reghop3((U8*)pos, off, (U8*)lim) : (U8*)(pos + off))
-#define HOPMAYBE3(pos,off,lim) (PL_reg_match_utf8 ? reghopmaybe3((U8*)pos, off, (U8*)lim) : (U8*)(pos + off))
#define HOP3c(pos,off,lim) ((char*)HOP3(pos,off,lim))
-#define HOPMAYBE3c(pos,off,lim) ((char*)HOPMAYBE3(pos,off,lim))
#define LOAD_UTF8_CHARCLASS(class,str) STMT_START { \
if (!CAT2(PL_utf8_,class)) { bool ok; ENTER; save_re_context(); ok=CAT2(is_utf8_,class)((const U8*)str); assert(ok); LEAVE; } } STMT_END
s = HOPc(s, -back_max);
}
else {
- char *t = (last1 >= PL_bostr) ? HOPc(last1, 1) : last1 + 1;
+ char * const t = (last1 >= PL_bostr) ? HOPc(last1, 1) : last1 + 1;
last1 = HOPc(s, -back_min);
- s = t;
+ s = t;
}
if (do_utf8) {
while (s <= last1) {
case UNLESSM:
n = 0;
if (scan->flags) {
- char *s = HOPBACKc(locinput, scan->flags);
+ char * const s = HOPBACKc(locinput, scan->flags);
if (!s)
goto say_yes;
PL_reginput = s;
case IFMATCH:
n = 1;
if (scan->flags) {
- char *s = HOPBACKc(locinput, scan->flags);
+ char * const s = HOPBACKc(locinput, scan->flags);
if (!s)
goto say_no;
PL_reginput = s;
}
STATIC U8 *
-S_reghop(pTHX_ U8 *s, I32 off)
-{
- dVAR;
- return S_reghop3(s, off, (U8*)(off >= 0 ? PL_regeol : PL_bostr));
-}
-
-STATIC U8 *
S_reghop3(U8 *s, I32 off, U8* lim)
{
dVAR;
}
STATIC U8 *
-S_reghopmaybe(pTHX_ U8 *s, I32 off)
-{
- dVAR;
- return S_reghopmaybe3(s, off, (U8*)(off >= 0 ? PL_regeol : PL_bostr));
-}
-
-STATIC U8 *
S_reghopmaybe3(U8* s, I32 off, U8* lim)
{
dVAR;