diff options
Diffstat (limited to 'config.mak.dev')
-rw-r--r-- | config.mak.dev | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/config.mak.dev b/config.mak.dev index 335efd4..9813047 100644 --- a/config.mak.dev +++ b/config.mak.dev @@ -59,9 +59,38 @@ endif # uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c # not worth fixing since newer compilers correctly stop complaining +# +# Likewise, gcc older than 4.9 complains about initializing a +# struct-within-a-struct using just "{ 0 }" ifneq ($(filter gcc4,$(COMPILER_FEATURES)),) ifeq ($(filter gcc5,$(COMPILER_FEATURES)),) DEVELOPER_CFLAGS += -Wno-uninitialized +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 |