if (SvROK(sv))
goto wasref;
}
- if (!SvOK(sv)) {
+ if (!SvOK(sv) && sv != &PL_sv_undef) {
/* If this is a 'my' scalar and flag is set then vivify
* NI-S 1999/05/07
*/
{
dPOPTOPnnrl;
I32 value;
-#ifdef __osf__ /* XXX fix in 5.6.1 --jhi */
+#ifdef __osf__ /* XXX Configure probe for isnan and isnanl needed XXX */
#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
#define Perl_isnan isnanl
#else
RETURN;
}
else if (SvUVX(sv) <= IV_MAX) {
- SETi(-SvUVX(sv));
+ SETi(-SvIVX(sv));
RETURN;
}
}