]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
handle 32bit size_t when building for x64
authorPavel P <pavlov.pavel@gmail.com>
Sat, 18 Jan 2025 21:37:50 +0000 (23:37 +0200)
committerPavel P <pavlov.pavel@gmail.com>
Sat, 18 Jan 2025 21:37:50 +0000 (23:37 +0200)
lib/common/bitstream.h

index c0db11d405e16a5737b4bef62fe3a8165e891ec1..d976c547836974cbc70b98eb0531519c8e039fbd 100644 (file)
@@ -162,9 +162,10 @@ MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC,
 FORCE_INLINE_TEMPLATE size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits)
 {
 #if defined(STATIC_BMI2) && STATIC_BMI2 == 1 && !defined(ZSTD_NO_INTRINSICS)
-#  if defined(__x86_64__) || defined(_M_X64)
-    return sizeof(size_t) == sizeof(U64) ? _bzhi_u64(bitContainer, nbBits) : _bzhi_u32((U32)bitContainer, nbBits);
+#  if (defined(__x86_64__) || defined(_M_X64)) && !defined(__ILP32__)
+    return _bzhi_u64(bitContainer, nbBits);
 #  else
+    DEBUG_STATIC_ASSERT(sizeof(size_t) == sizeof(U32));
     return _bzhi_u32(bitContainer, nbBits);
 #  endif
 #else