Workaround for MSVC conversion bug (double -> uint32_t -> int32_t).

This commit is contained in:
Mike Pall 2012-07-17 21:45:49 +02:00
parent 08d8ec0648
commit c172e7aa30

View File

@ -627,7 +627,14 @@ LJFOLD(CONV KNUM IRCONV_U32_NUM)
LJFOLDF(kfold_conv_knum_u32_num) LJFOLDF(kfold_conv_knum_u32_num)
{ {
lua_assert((fins->op2 & IRCONV_TRUNC)); lua_assert((fins->op2 & IRCONV_TRUNC));
#ifdef _MSC_VER
{ /* Workaround for MSVC bug. */
volatile uint32_t u = (uint32_t)knumleft;
return INTFOLD((int32_t)u);
}
#else
return INTFOLD((int32_t)(uint32_t)knumleft); return INTFOLD((int32_t)(uint32_t)knumleft);
#endif
} }
LJFOLD(CONV KNUM IRCONV_I64_NUM) LJFOLD(CONV KNUM IRCONV_I64_NUM)