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) |
