diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_opt_fold.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index aa80a6aa..e4818a92 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -627,7 +627,14 @@ LJFOLD(CONV KNUM IRCONV_U32_NUM) | |||
627 | LJFOLDF(kfold_conv_knum_u32_num) | 627 | LJFOLDF(kfold_conv_knum_u32_num) |
628 | { | 628 | { |
629 | lua_assert((fins->op2 & IRCONV_TRUNC)); | 629 | lua_assert((fins->op2 & IRCONV_TRUNC)); |
630 | #ifdef _MSC_VER | ||
631 | { /* Workaround for MSVC bug. */ | ||
632 | volatile uint32_t u = (uint32_t)knumleft; | ||
633 | return INTFOLD((int32_t)u); | ||
634 | } | ||
635 | #else | ||
630 | return INTFOLD((int32_t)(uint32_t)knumleft); | 636 | return INTFOLD((int32_t)(uint32_t)knumleft); |
637 | #endif | ||
631 | } | 638 | } |
632 | 639 | ||
633 | LJFOLD(CONV KNUM IRCONV_I64_NUM) | 640 | LJFOLD(CONV KNUM IRCONV_I64_NUM) |