From: Eric Sunshine Date: Thu, 06 Oct 2022 22:30:56 GMT Subject: Re: [PATCH 1/2] builtin/merge-file: fix compiler error on MacOS with clang 11.0.0 Message-ID: In-Reply-To: <36cd156b-edb2-062c-9422-bf39aad39a6d@web.de> On Thu, Oct 6, 2022 at 5:25 PM René Scharfe wrote: > Am 06.10.22 um 21:43 schrieb Jeff Hostetler via GitGitGadget: > > Add extra set of braces around zero initialization of two array/structure > > variables to resolve compiler errors/warnings from clang 11.0.0 on MacOS. > > This is not needed on clang 14.0. > > Not sure how the Apple version numbers map to LLVM versions. I can > reproduce it with Godbolt's Compiler Explorer with clang 8, but not > with clang 9 or higher: https://godbolt.org/z/f7f7s9xxz > > > builtin/merge-file.c:29:23: error: suggest braces around initialization \ > > of subobject [-Werror,-Wmissing-braces] > > mmfile_t mmfs[3] = { 0 }; > > ^ > > {} > > {0} is an idiom to zero-initialize any struct, no matter how deeply > nested. It's valid C and the compiler warning about it is not helpful. > Shouldn't we rather silence it with -Wno-missing-braces? That was indeed Ævar's suggestion in [1]: Since this is only a warning, and only a practical issue with -Werror I wonder if a config.mak.dev change wouldn't be better, i.e. to provide a -Wno-missing-braces for this older clang version. The problem is that Apple seems to invent their version numbers out of thin air with no relation to reality[2,3], so it may take some effort to work out suitable "version mapping rules" for config.mak.dev, and nobody has done it yet. [1]: https://lore.kernel.org/git/220712.86lesy6cri.gmgdl@evledraar.gmail.com/ [2]: https://lore.kernel.org/git/Ys0hhYjPExuNWynE@coredump.intra.peff.net/ [3]: https://lore.kernel.org/git/YQ2LdvwEnZN9LUQn@coredump.intra.peff.net/