Prechádzať zdrojové kódy

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

Mike Pall 13 rokov pred
rodič
commit
c172e7aa30
1 zmenil súbory, kde vykonal 7 pridanie a 0 odobranie
  1. 7 0
      src/lj_opt_fold.c

+ 7 - 0
src/lj_opt_fold.c

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