From: Bruno Haible Date: Fri, 17 May 2024 22:27:12 +0000 (+0200) Subject: stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=0e1464f640ddecc68d1714a641db023caa97dab5;p=gnulib.git stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC. * lib/stdbit.in.h (__gl_stdbit_clzll) [_MSC_VER]: On x86_64, use _BitScanReverse64. --- diff --git a/ChangeLog b/ChangeLog index a6dfe2c370..5207f25b3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2024-05-17 Bruno Haible + + stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC. + * lib/stdbit.in.h (__gl_stdbit_clzll) [_MSC_VER]: On x86_64, use + _BitScanReverse64. + 2024-05-17 Bruno Haible getusershell tests: Fix link error on MSVC. diff --git a/lib/stdbit.in.h b/lib/stdbit.in.h index b5b5870eba..a466a45d77 100644 --- a/lib/stdbit.in.h +++ b/lib/stdbit.in.h @@ -169,7 +169,7 @@ __gl_stdbit_clzll (unsigned long long int n) { # ifdef _M_X64 unsigned long int r; - return 8 * sizeof n - (_BitScanReverse (&r, n) ? r + 1 : 0); + return 8 * sizeof n - (_BitScanReverse64 (&r, n) ? r + 1 : 0); # else unsigned long int hi = n >> 32; return __gl_stdbit_clzl (hi ? hi : n) + (hi ? 0 : 32);