]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Workaround for MSVC conversion bug (double -> uint32_t -> int32_t).
authorMike Pall <mike>
Tue, 17 Jul 2012 19:45:49 +0000 (21:45 +0200)
committerMike Pall <mike>
Tue, 17 Jul 2012 19:45:49 +0000 (21:45 +0200)
src/lj_opt_fold.c

index aa80a6aacaa2d23ae5d44588c97385e4e3b48cdc..e4818a92e47778443dc12f1790ef19fab0d590ed 100644 (file)
@@ -627,7 +627,14 @@ LJFOLD(CONV KNUM IRCONV_U32_NUM)
 LJFOLDF(kfold_conv_knum_u32_num)
 {
   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);
+#endif
 }
 
 LJFOLD(CONV KNUM IRCONV_I64_NUM)