]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Adding static assert and using it in cli
authorBimba Shrestha <bimbashrestha@fb.com>
Fri, 31 Jan 2020 18:47:17 +0000 (10:47 -0800)
committerBimba Shrestha <bimbashrestha@fb.com>
Fri, 31 Jan 2020 18:47:17 +0000 (10:47 -0800)
programs/zstdcli.c

index fed0a179f1f56cd9dee921c7e4debcf2ed8b5597..01be5fdc16d75acae6d3097493103bd0a2ac4b66 100644 (file)
@@ -544,7 +544,10 @@ static int init_cLevel(void) {
     return ZSTDCLI_CLEVEL_DEFAULT;
 }
 
+#define ZSTD_CLI_STATIC_ASSERT(c) (void)sizeof(char[(c) ? 1 : -1])
+
 #define ZSTD_NB_STRATEGIES ZSTD_STRATEGY_MAX
+
 static const char* ZSTD_strategyMap[ZSTD_NB_STRATEGIES + 1] = { "", "ZSTD_fast",
                 "ZSTD_dfast", "ZSTD_greedy", "ZSTD_lazy", "ZSTD_lazy2", "ZSTD_btlazy2",
                 "ZSTD_btopt", "ZSTD_btultra", "ZSTD_btultra2"};
@@ -1227,6 +1230,8 @@ int main(int const argCount, const char* argv[])
         if (adaptMin > cLevel) cLevel = adaptMin;
         if (adaptMax < cLevel) cLevel = adaptMax;
 
+        ZSTD_CLI_STATIC_ASSERT(ZSTD_NB_STRATEGIES >= ZSTD_STRATEGY_MIN && ZSTD_NB_STRATEGIES <= ZSTD_STRATEGY_MAX);
+
         if (showDefaultCParams) {
             size_t fileNb;
             for (fileNb = 0; fileNb < (size_t)filenames->tableSize; fileNb++) {