diff options
Diffstat (limited to 'src/lj_cconv.c')
-rw-r--r-- | src/lj_cconv.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/lj_cconv.c b/src/lj_cconv.c index 5df33d04..b123c081 100644 --- a/src/lj_cconv.c +++ b/src/lj_cconv.c | |||
@@ -200,13 +200,8 @@ void lj_cconv_ct_ct(CTState *cts, CType *d, CType *s, | |||
200 | } else if (dsize == 8) { | 200 | } else if (dsize == 8) { |
201 | if (!(dinfo & CTF_UNSIGNED)) | 201 | if (!(dinfo & CTF_UNSIGNED)) |
202 | *(int64_t *)dp = (int64_t)n; | 202 | *(int64_t *)dp = (int64_t)n; |
203 | #ifdef _MSC_VER | ||
204 | else if (n >= 9223372036854775808.0) /* They think it's a feature. */ | ||
205 | *(uint64_t *)dp = (uint64_t)(int64_t)(n - 9223372036854775808.0) + | ||
206 | U64x(80000000,00000000); | ||
207 | #endif | ||
208 | else | 203 | else |
209 | *(uint64_t *)dp = (uint64_t)n; | 204 | *(uint64_t *)dp = lj_num2u64(n); |
210 | } else { | 205 | } else { |
211 | goto err_conv; /* NYI: conversion to >64 bit integers. */ | 206 | goto err_conv; /* NYI: conversion to >64 bit integers. */ |
212 | } | 207 | } |