#if SU_HAS_PERL(5, 19, 4)
cx = cxstack + cxstack_ix;
- if (CxTYPE(cx) == CXt_SUB)
+ if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)
save = PL_scopestack[cx->blk_oldscopesp - 1];
#endif
leave_scope(base);
#if SU_HAS_PERL(5, 19, 4)
- if (CxTYPE(cx) == CXt_SUB)
+ if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)
PL_scopestack[cx->blk_oldscopesp - 1] = save;
#endif
}
#if SU_HAS_PERL(5, 10, 0)
if (cxix > 0) {
PERL_CONTEXT *prev = cx - 1;
- U8 type = CxTYPE(prev);
- if ((type == CXt_GIVEN || type == CXt_WHEN)
+ U8 prev_type = CxTYPE(prev);
+ if ((prev_type == CXt_GIVEN || prev_type == CXt_WHEN)
&& (prev->blk_oldcop == cx->blk_oldcop)) {
cxix--;
cx = prev;
- if (type == CXt_GIVEN)
+ if (prev_type == CXt_GIVEN)
goto cxt_given;
else
goto cxt_when;
/* --- Global setup/teardown ----------------------------------------------- */
-static U32 su_initialized = 0;
+static VOL U32 su_initialized = 0;
static void su_global_teardown(pTHX_ void *root) {
if (!su_initialized)