[PATCH] git-compat-util(msvc): C11 does not imply support for zero-sized arrays
From: Johannes Schindelin via GitGitGadget <hidden>
Date: 2021-12-06 20:48:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Johannes Schindelin <redacted>
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 <redacted>
---
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