From: Ma Lin Date: Fri, 24 Sep 2021 11:40:24 +0000 (+0800) Subject: Don't initialize the first parameter of _BitScanForward* functions X-Git-Tag: v1.5.1~1^2~76^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5ba858270929080f03be821c53c93b8a05a42e0;p=thirdparty%2Fzstd.git Don't initialize the first parameter of _BitScanForward* functions Like the document example, no need to initialize `r` to 0. https://docs.microsoft.com/en-us/cpp/intrinsics/bitscanforward-bitscanforward64 --- diff --git a/lib/common/entropy_common.c b/lib/common/entropy_common.c index 6ba1f2209..dd80b2ccc 100644 --- a/lib/common/entropy_common.c +++ b/lib/common/entropy_common.c @@ -43,7 +43,7 @@ static U32 FSE_ctz(U32 val) assert(val != 0); { # if defined(_MSC_VER) /* Visual */ - unsigned long r=0; + unsigned long r; return _BitScanForward(&r, val) ? (unsigned)r : 0; # elif defined(__GNUC__) && (__GNUC__ >= 3) /* GCC Intrinsic */ return __builtin_ctz(val); diff --git a/lib/common/zstd_internal.h b/lib/common/zstd_internal.h index ba1b7bbc8..246022c5f 100644 --- a/lib/common/zstd_internal.h +++ b/lib/common/zstd_internal.h @@ -391,7 +391,7 @@ MEM_STATIC unsigned ZSTD_countTrailingZeros(size_t val) # if STATIC_BMI2 return _tzcnt_u64(val); # else - unsigned long r = 0; + unsigned long r; return _BitScanForward64( &r, (U64)val ) ? (unsigned)(r >> 3) : 0; # endif # elif defined(__GNUC__) && (__GNUC__ >= 4) @@ -409,7 +409,7 @@ MEM_STATIC unsigned ZSTD_countTrailingZeros(size_t val) # endif } else { /* 32 bits */ # if defined(_MSC_VER) - unsigned long r=0; + unsigned long r; return _BitScanForward( &r, (U32)val ) ? (unsigned)(r >> 3) : 0; # elif defined(__GNUC__) && (__GNUC__ >= 3) return (__builtin_ctz((U32)val) >> 3); diff --git a/lib/compress/zstd_compress_internal.h b/lib/compress/zstd_compress_internal.h index 6821c9df8..bc30daa75 100644 --- a/lib/compress/zstd_compress_internal.h +++ b/lib/compress/zstd_compress_internal.h @@ -672,7 +672,7 @@ static unsigned ZSTD_NbCommonBytes (size_t val) # if STATIC_BMI2 return _tzcnt_u64(val) >> 3; # else - unsigned long r = 0; + unsigned long r; return _BitScanForward64( &r, (U64)val ) ? (unsigned)(r >> 3) : 0; # endif # elif defined(__GNUC__) && (__GNUC__ >= 4) @@ -690,7 +690,7 @@ static unsigned ZSTD_NbCommonBytes (size_t val) # endif } else { /* 32 bits */ # if defined(_MSC_VER) - unsigned long r=0; + unsigned long r; return _BitScanForward( &r, (U32)val ) ? (unsigned)(r >> 3) : 0; # elif defined(__GNUC__) && (__GNUC__ >= 3) return (__builtin_ctz((U32)val) >> 3); diff --git a/lib/compress/zstd_lazy.c b/lib/compress/zstd_lazy.c index fef28de8d..ac84b479f 100644 --- a/lib/compress/zstd_lazy.c +++ b/lib/compress/zstd_lazy.c @@ -882,7 +882,7 @@ static U32 ZSTD_VecMask_next(ZSTD_VecMask val) { assert(val != 0); # if defined(_MSC_VER) && defined(_WIN64) { - unsigned long r = 0; + unsigned long r; /* _BitScanForward64 is not defined outside of x64 */ return _BitScanForward64(&r, val) ? (U32)r : 0; } diff --git a/lib/dictBuilder/zdict.c b/lib/dictBuilder/zdict.c index 2421f40f3..ea00eafc7 100644 --- a/lib/dictBuilder/zdict.c +++ b/lib/dictBuilder/zdict.c @@ -135,9 +135,8 @@ static unsigned ZDICT_NbCommonBytes (size_t val) if (MEM_isLittleEndian()) { if (MEM_64bits()) { # if defined(_MSC_VER) && defined(_WIN64) - unsigned long r = 0; - _BitScanForward64( &r, (U64)val ); - return (unsigned)(r>>3); + unsigned long r; + return _BitScanForward64(&r, (U64)val) ? (unsigned)(r >> 3) : 0; # elif defined(__GNUC__) && (__GNUC__ >= 3) return (unsigned)(__builtin_ctzll((U64)val) >> 3); # else @@ -146,9 +145,8 @@ static unsigned ZDICT_NbCommonBytes (size_t val) # endif } else { /* 32 bits */ # if defined(_MSC_VER) - unsigned long r=0; - _BitScanForward( &r, (U32)val ); - return (unsigned)(r>>3); + unsigned long r; + return _BitScanForward(&r, (U32)val) ? (unsigned)(r >> 3) : 0; # elif defined(__GNUC__) && (__GNUC__ >= 3) return (unsigned)(__builtin_ctz((U32)val) >> 3); # else