summaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-07-17 21:45:49 +0200
committerMike Pall <mike>2012-07-17 21:45:49 +0200
commitc172e7aa30a820a11afbbed180115b81e2ea1411 (patch)
treec0b65b6702d5fb82df59be28b05a219c483ccfd6 /src/lj_opt_fold.c
parent08d8ec0648daaf9a80e6a734630cec3c877377b3 (diff)
downloadluajit-c172e7aa30a820a11afbbed180115b81e2ea1411.tar.gz
luajit-c172e7aa30a820a11afbbed180115b81e2ea1411.tar.bz2
luajit-c172e7aa30a820a11afbbed180115b81e2ea1411.zip
Workaround for MSVC conversion bug (double -> uint32_t -> int32_t).
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c7
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)
627LJFOLDF(kfold_conv_knum_u32_num) 627LJFOLDF(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
633LJFOLD(CONV KNUM IRCONV_I64_NUM) 640LJFOLD(CONV KNUM IRCONV_I64_NUM)