From: Johannes Schindelin <johannes.schindelin@xxxxxx> This seems to be required to define `FLEX_ARRAY` in a manner that MSVC in C11 mode accepts. Without this fix, building Git for Windows' experimental FSCache code would fail thusly: error C2229: struct 'heap_fsentry' has an illegal zero-sized array Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- git-compat-util(msvc): C11 does not imply support for zero-sized arrays In Git for Windows' continuously-rebased branches, I found this problem [https://github.com/git-for-windows/git/runs/4431149285?check_suite_focus=true#step:9:14507] (which uses FLEX_ARRAY correctly, but fails because FLEX_ARRAY is no longer defined as required by MS Visual C). This patch is based on bc/require-c99. Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1094%2Fdscho%2Fflex-array-and-msvc-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1094/dscho/flex-array-and-msvc-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1094 git-compat-util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-compat-util.h b/git-compat-util.h index 19943e214ba..c9f508b3a83 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -46,7 +46,7 @@ /* * See if our compiler is known to support flexible array members. */ -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && (!defined(__SUNPRO_C) || (__SUNPRO_C > 0x580)) +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(_MSC_VER) && (!defined(__SUNPRO_C) || (__SUNPRO_C > 0x580)) # define FLEX_ARRAY /* empty */ #elif defined(__GNUC__) # if (__GNUC__ >= 3) base-commit: 7bc341e21b566c6685b7d993ca80459f9994be38 -- gitgitgadget