case PERL_MAGIC_arylen_p:
case PERL_MAGIC_rhash:
case PERL_MAGIC_symtab:
+ case PERL_MAGIC_tied: /* treat as value, so 'local @tied' isn't tied */
+ case PERL_MAGIC_tiedscalar: /* so 'local $scalar' isn't tied */
return 0;
default:
return 1;
(void)rsignal(sig, PL_csighandlerp);
#endif
#endif /* !PERL_MICRO */
- Perl_die(aTHX_ NULL);
+ die_sv(ERRSV);
}
cleanup:
if (flags & 1)
*/
if (PL_savestack_ix == mgs->mgs_ss_ix)
{
- UV type = SSPOPUV;
- I32 popval;
- assert(type == SAVEt_DESTRUCTOR_X);
+ UV popval = SSPOPUV;
+ assert(popval == SAVEt_DESTRUCTOR_X);
PL_savestack_ix -= 2;
- type = SSPOPUV;
- assert(type == SAVEt_ALLOC);
- popval = SSPOPINT;
- PL_savestack_ix -= popval;
+ popval = SSPOPUV;
+ assert((popval & SAVE_MASK) == SAVEt_ALLOC);
+ PL_savestack_ix -= popval >> SAVE_TIGHT_SHIFT;
}
}