From: Junio C Hamano Date: Thu, 27 Oct 2022 22:24:13 +0000 (-0700) Subject: Merge branch 'jh/struct-zero-init-with-older-clang' into maint-2.38 X-Git-Tag: v2.39.0-rc0~75^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4532cd8377200093be5dea53a44aea73f8465423;hp=92cd390849a6f39c1b8f0c4cade93ef995db71a5;p=thirdparty%2Fgit.git Merge branch 'jh/struct-zero-init-with-older-clang' into maint-2.38 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 --- 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