{
sv_setiv(sv, (IV)STATUS_CURRENT);
#ifdef COMPLEX_STATUS
+ SvUPGRADE(sv, SVt_PVLV);
LvTARGOFF(sv) = PL_statusvalue;
LvTARGLEN(sv) = PL_statusvalue_vms;
#endif
else {
i = (I16)mg->mg_private;
if (!i) {
- mg->mg_private = i = whichsig(s); /* ...no, a brick */
+ i = whichsig(s); /* ...no, a brick */
+ mg->mg_private = (U16)i;
}
if (i <= 0) {
if (sv && ckWARN(WARN_SIGNAL))
case '?':
#ifdef COMPLEX_STATUS
if (PL_localizing == 2) {
+ SvUPGRADE(sv, SVt_PVLV);
PL_statusvalue = LvTARGOFF(sv);
PL_statusvalue_vms = LvTARGLEN(sv);
}