Am 07.10.22 um 19:49 schrieb Junio C Hamano: > > My preference is to flip the -Wno-missing-braces bit in > config.mak.uname only for folks who use the version of clang on > macOS when that clang claims to be clang11 (my understanding of > René's experiment[*] is that versions of (real) clang 9 or newer > perfectly well understand that {0} is an accpetable way to specify > zero initialization for any structure, with possible nesting). > > [Reference] > > * https://lore.kernel.org/git/36cd156b-edb2-062c-9422-bf39aad39a6d@xxxxxx/ Wikipedia has a map that says Apple calls the LLVM clang 8 (i.e. the real one) "11.0.0" and clang 9 "11.0.3": https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)_2 Perhaps like this? (No sign-off because I'm not comfortable with that make function syntax, but feel free to steal salvageable parts.) diff --git a/config.mak.dev b/config.mak.dev index 4fa19d361b..4d59c9044f 100644 --- a/config.mak.dev +++ b/config.mak.dev @@ -69,6 +69,14 @@ DEVELOPER_CFLAGS += -Wno-missing-braces endif endif +# LLVM clang older than 9 and Apple clang older than 12 complain +# about initializing a struct-within-a-struct using just "{ 0 }" +ifneq ($(filter clang1,$(COMPILER_FEATURES)),) +ifeq ($(filter $(if $(filter Darwin,$(uname_S)),clang12,clang9),$(COMPILER_FEATURES)),) +DEVELOPER_CFLAGS += -Wno-missing-braces +endif +endif + # https://bugzilla.redhat.com/show_bug.cgi?id=2075786 ifneq ($(filter gcc12,$(COMPILER_FEATURES)),) DEVELOPER_CFLAGS += -Wno-error=stringop-overread