diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-10-19 15:38:06 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-10-19 15:38:06 -0700 |
commit | 617e9991d4434c4cc077583ed9426782cf3b2f43 (patch) | |
tree | 9edceb48476819f40cd5849c0d88c80a21ef0b6a | |
parent | fe9c607509430b52ec107134f2d8e5d201bcf5bc (diff) | |
parent | 54795d37d9e689864989f30d769045eb02b01320 (diff) | |
download | git-617e9991d4434c4cc077583ed9426782cf3b2f43.tar.gz |
Merge branch 'jh/struct-zero-init-with-older-clang'
Work around older clang that warns against C99 zero initialization
syntax for struct.
* jh/struct-zero-init-with-older-clang:
config.mak.dev: disable suggest braces error on old clang versions
-rw-r--r-- | config.mak.dev | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/config.mak.dev b/config.mak.dev index 4fa19d361b..981304727c 100644 --- a/config.mak.dev +++ b/config.mak.dev @@ -69,6 +69,31 @@ DEVELOPER_CFLAGS += -Wno-missing-braces endif endif +# Old versions of clang complain about initializaing a +# struct-within-a-struct using just "{0}" rather than "{{0}}". This +# error is considered a false-positive and not worth fixing, because +# new clang versions do not, so just disable it. +# +# The "bug" was fixed in upstream clang 9. +# +# Complicating this is that versions of clang released by Apple have +# their own version numbers (associated with the corresponding version +# of XCode) unrelated to the official clang version numbers. +# +# The bug was fixed in Apple clang 12. +# +ifneq ($(filter clang1,$(COMPILER_FEATURES)),) # if we are using clang +ifeq ($(uname_S),Darwin) # if we are on darwin +ifeq ($(filter clang12,$(COMPILER_FEATURES)),) # if version < 12 +DEVELOPER_CFLAGS += -Wno-missing-braces +endif +else # not darwin +ifeq ($(filter clang9,$(COMPILER_FEATURES)),) # if version < 9 +DEVELOPER_CFLAGS += -Wno-missing-braces +endif +endif +endif + # https://bugzilla.redhat.com/show_bug.cgi?id=2075786 ifneq ($(filter gcc12,$(COMPILER_FEATURES)),) DEVELOPER_CFLAGS += -Wno-error=stringop-overread |