Fix declarations of _BitScanForward/_BitScanReverse.

Reported by Mumin Guler.
This commit is contained in:
Mike Pall 2019-12-08 19:42:49 +01:00
parent 46a1b268eb
commit 41a25efc80

View File

@ -254,19 +254,19 @@ static LJ_AINLINE uint32_t lj_fls(uint32_t x)
return _CountLeadingZeros(x) ^ 31; return _CountLeadingZeros(x) ^ 31;
} }
#else #else
unsigned char _BitScanForward(uint32_t *, unsigned long); unsigned char _BitScanForward(unsigned long *, unsigned long);
unsigned char _BitScanReverse(uint32_t *, unsigned long); unsigned char _BitScanReverse(unsigned long *, unsigned long);
#pragma intrinsic(_BitScanForward) #pragma intrinsic(_BitScanForward)
#pragma intrinsic(_BitScanReverse) #pragma intrinsic(_BitScanReverse)
static LJ_AINLINE uint32_t lj_ffs(uint32_t x) static LJ_AINLINE uint32_t lj_ffs(uint32_t x)
{ {
uint32_t r; _BitScanForward(&r, x); return r; unsigned long r; _BitScanForward(&r, x); return (uint32_t)r;
} }
static LJ_AINLINE uint32_t lj_fls(uint32_t x) static LJ_AINLINE uint32_t lj_fls(uint32_t x)
{ {
uint32_t r; _BitScanReverse(&r, x); return r; unsigned long r; _BitScanReverse(&r, x); return (uint32_t)r;
} }
#endif #endif