]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fixed constant errors for gcc in c99 mode
authorYann Collet <cyan@fb.com>
Tue, 26 Sep 2017 21:31:06 +0000 (14:31 -0700)
committerYann Collet <cyan@fb.com>
Tue, 26 Sep 2017 21:31:06 +0000 (14:31 -0700)
C standard does not consider a `static const int` as a constant.
This is a problem for initializer, and ZSTD_STATIC_ASSERT().
Replaced by macro values

lib/common/zstd_internal.h
lib/decompress/zstd_decompress.c
lib/zstd.h
tests/fuzzer.c

index 0e34dc4c81f512584049f6b4cb9e8bd687e939f8..614bd1eaba01c9d3b6e72869dfdc2d54083c35b2 100644 (file)
@@ -105,7 +105,8 @@ static const U32 repStartValue[ZSTD_REP_NUM] = { 1, 4, 8 };
 static const size_t ZSTD_fcs_fieldSize[4] = { 0, 2, 4, 8 };
 static const size_t ZSTD_did_fieldSize[4] = { 0, 1, 2, 4 };
 
-static const size_t ZSTD_frameIdSize = 4;  /* magic number */
+#define ZSTD_FRAMEIDSIZE 4
+static const size_t ZSTD_frameIdSize = ZSTD_FRAMEIDSIZE;  /* magic number size */
 
 #define ZSTD_BLOCKHEADERSIZE 3   /* C standard doesn't allow `static const` variable to be init using another `static const` variable */
 static const size_t ZSTD_blockHeaderSize = ZSTD_BLOCKHEADERSIZE;
index 7b26a7339282c002ab55a766e31931610f69b6e6..ffb54275e664489c7b521ff2fb89c3d72c41d149 100644 (file)
@@ -278,7 +278,7 @@ static size_t ZSTD_frameHeaderSize_internal(const void* src, size_t srcSize, ZST
     size_t const minInputSize = (format==ZSTD_f_zstd1_magicless) ?
                     ZSTD_frameHeaderSize_prefix - ZSTD_frameIdSize :
                     ZSTD_frameHeaderSize_prefix;
-    ZSTD_STATIC_ASSERT(ZSTD_frameHeaderSize_prefix >= ZSTD_frameIdSize);
+    ZSTD_STATIC_ASSERT(ZSTD_FRAMEHEADERSIZE_PREFIX >= ZSTD_FRAMEIDSIZE);
     ZSTD_STATIC_ASSERT((unsigned)ZSTD_f_zstd1 < (unsigned)ZSTD_f_zstd1_magicless);
     assert((unsigned)format <= ZSTD_f_zstd1_magicless);  /* only supports formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless */
     if (srcSize < minInputSize) return ERROR(srcSize_wrong);
index ca60088c8d7bff65603397f963d0ef97187b8d68..3ec9af592a4e017ef922e336cef206b785f4a688 100644 (file)
@@ -395,11 +395,12 @@ ZSTDLIB_API size_t ZSTD_DStreamOutSize(void);   /*!< recommended size for output
 #define ZSTD_LDM_MINMATCH_MAX 4096
 #define ZSTD_LDM_BUCKETSIZELOG_MAX 8
 
-#define ZSTD_FRAMEHEADERSIZE_MAX 18    /* for static allocation */
-#define ZSTD_FRAMEHEADERSIZE_MIN  6
-static const size_t ZSTD_frameHeaderSize_prefix = 5;  /* minimum input size to know frame header size */
-static const size_t ZSTD_frameHeaderSize_max = ZSTD_FRAMEHEADERSIZE_MAX;
+#define ZSTD_FRAMEHEADERSIZE_PREFIX 5   /* minimum input size to know frame header size */
+#define ZSTD_FRAMEHEADERSIZE_MIN    6
+#define ZSTD_FRAMEHEADERSIZE_MAX   18   /* for static allocation */
+static const size_t ZSTD_frameHeaderSize_prefix = ZSTD_FRAMEHEADERSIZE_PREFIX;
 static const size_t ZSTD_frameHeaderSize_min = ZSTD_FRAMEHEADERSIZE_MIN;
+static const size_t ZSTD_frameHeaderSize_max = ZSTD_FRAMEHEADERSIZE_MAX;
 static const size_t ZSTD_skippableHeaderSize = 8;  /* magic number + skippable frame length */
 
 
index a341b59887bf42d65083af4269108c4173bb75f9..e77aab363e0ca2692493df95de9ef721ea8250ca 100644 (file)
@@ -920,7 +920,7 @@ static int basicUnitTests(U32 seed, double compressibility)
 
     /* custom formats tests */
     {   ZSTD_CCtx* const cctx = ZSTD_createCCtx();
-        static const size_t inputSize = CNBuffSize / 2;   /* won't cause pb with small dict size */
+        size_t const inputSize = CNBuffSize / 2;   /* won't cause pb with small dict size */
 
         /* basic block compression */
         DISPLAYLEVEL(4, "test%3i : magic-less format test : ", testNb++);