diff options
author | Takayuki Matsuoka <t-mat@users.noreply.github.com> | 2022-08-12 15:36:28 (GMT) |
---|---|---|
committer | Takayuki Matsuoka <t-mat@users.noreply.github.com> | 2022-08-12 15:36:28 (GMT) |
commit | 46d12d661edda40bedc0ce38247e170b13575aaf (patch) | |
tree | efea511eaa1aebbdeb8a9fc528a47cb1913e6d63 | |
parent | f892f828838c064dab8d754388506c94e37c3fe1 (diff) | |
download | lz4-46d12d661edda40bedc0ce38247e170b13575aaf.zip lz4-46d12d661edda40bedc0ce38247e170b13575aaf.tar.gz lz4-46d12d661edda40bedc0ce38247e170b13575aaf.tar.bz2 |
Suppress false positive warning from MSVC (fuzzer.c)
Suppress the following false positive warnings from MSVC:
- Disable all arithmetic overflow (C26451)
- Suppress C6385: Reading invalid data from 'compressedBuffer'.
- Add ULL suffix to unsigned 64-bits constants.
-rw-r--r-- | tests/fuzzer.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/fuzzer.c b/tests/fuzzer.c index 07d63a2..341a2b0 100644 --- a/tests/fuzzer.c +++ b/tests/fuzzer.c @@ -30,6 +30,7 @@ # pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ # pragma warning(disable : 4146) /* disable: C4146: minus unsigned expression */ # pragma warning(disable : 4310) /* disable: C4310: constant char value > 127 */ +# pragma warning(disable : 26451) /* disable: C26451: Arithmetic overflow */ #endif @@ -494,7 +495,14 @@ static int FUZ_test(U32 seed, U32 nbCycles, const U32 startCycle, const double c { char* const cBuffer_exact = (char*)malloc((size_t)compressedSize); assert(cBuffer_exact != NULL); assert(compressedSize <= (int)compressedBufferSize); +#if defined(_MSC_VER) && (_MSC_VER <= 1933) /* MSVC 2022 ver 17.3 or earlier */ +# pragma warning(push) +# pragma warning(disable : 6385) /* lz4\tests\fuzzer.c(497): warning C6385: Reading invalid data from 'compressedBuffer'. */ +#endif memcpy(cBuffer_exact, compressedBuffer, compressedSize); +#if defined(_MSC_VER) && (_MSC_VER <= 1933) /* MSVC 2022 ver 17.3 or earlier */ +# pragma warning(pop) +#endif /* Test decoding with output size exactly correct => must work */ FUZ_DISPLAYTEST("LZ4_decompress_fast() with exact output buffer"); @@ -571,7 +579,7 @@ static int FUZ_test(U32 seed, U32 nbCycles, const U32 startCycle, const double c for (;;) { /* keep some original src */ { U32 const nbBits = FUZ_rand(&randState) % maxNbBits; - size_t const mask = (1<<nbBits) - 1; + size_t const mask = (1ULL <<nbBits) - 1; size_t const skipLength = FUZ_rand(&randState) & mask; pos += skipLength; } @@ -579,7 +587,7 @@ static int FUZ_test(U32 seed, U32 nbCycles, const U32 startCycle, const double c /* add noise */ { U32 const nbBitsCodes = FUZ_rand(&randState) % maxNbBits; U32 const nbBits = nbBitsCodes ? nbBitsCodes-1 : 0; - size_t const mask = (1<<nbBits) - 1; + size_t const mask = (1ULL <<nbBits) - 1; size_t const rNoiseLength = (FUZ_rand(&randState) & mask) + 1; size_t const noiseLength = MIN(rNoiseLength, (size_t)compressedSize-pos); size_t const noiseStart = FUZ_rand(&randState) % (COMPRESSIBLE_NOISE_LENGTH - noiseLength); |