ERs |bool |reginclass |NULLOK const regexp * const prog|NN const regnode * const n|NN const U8 * const p|NULLOK STRLEN *lenp\
|bool const do_utf8sv_is_utf8
Es |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor
-Es |char* |regcppop |NN regexp *rex
+Es |void |regcppop |NN regexp *rex
ERsn |U8* |reghop3 |NN U8 *s|I32 off|NN const U8 *lim
ERsM |SV* |core_regclass_swash|NULLOK const regexp *prog \
|NN const struct regnode *node|bool doinit \
#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
assert(rex); assert(scan)
-STATIC char* S_regcppop(pTHX_ regexp *rex)
+STATIC void S_regcppop(pTHX_ regexp *rex)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REGCPPOP \
assert(rex)
static void restore_pos(pTHX_ void *arg);
#define REGCP_PAREN_ELEMS 4
-#define REGCP_OTHER_ELEMS 4
+#define REGCP_OTHER_ELEMS 3
#define REGCP_FRAME_ELEMS 1
/* REGCP_FRAME_ELEMS are not part of the REGCP_OTHER_ELEMS and
* are needed for the regexp context stack bookkeeping. */
SSPUSHINT(PL_regsize);
SSPUSHINT(rex->lastparen);
SSPUSHINT(rex->lastcloseparen);
- SSPUSHPTR(PL_reginput);
SSPUSHUV(SAVEt_REGCONTEXT | elems_shifted); /* Magic cookie. */
return retval;
(IV)(cp), (IV)PL_savestack_ix)); \
regcpblow(cp)
-STATIC char *
+STATIC void
S_regcppop(pTHX_ regexp *rex)
{
dVAR;
UV i;
- char *input;
GET_RE_DEBUG_FLAGS_DECL;
PERL_ARGS_ASSERT_REGCPPOP;
i = SSPOPUV;
assert((i & SAVE_MASK) == SAVEt_REGCONTEXT); /* Check that the magic cookie is there. */
i >>= SAVE_TIGHT_SHIFT; /* Parentheses elements to pop. */
- input = (char *) SSPOPPTR;
rex->lastcloseparen = SSPOPINT;
rex->lastparen = SSPOPINT;
PL_regsize = SSPOPINT;
));
}
#endif
- return input;
}
#define regcpblow(cp) LEAVE_SCOPE(cp) /* Ignores regcppush()ed data. */