Hi Hannes, On Thu, 26 Jan 2017, Johannes Sixt wrote: > Am 25.01.2017 um 23:01 schrieb Jeff King: > > +#pragma GCC diagnostic ignored "-Wformat-zero-length" > > Last time I used #pragma GCC in a cross-platform project, it triggered > an "unknown pragma" warning for MSVC. It is starting to become a little funny how many ways we can discuss the resolution of the GCC compiler warning. And it starts to show: we try to solve the thing in so many ways, just to avoid the obviously most-trivial patch to change warning(""); to warning("%s", "") (the change to warning(" "); would change behavior, but I would be fine with that, too). I am not really interested in any of these complicated workarounds. If you gentle people decide they are better in Git's source code, go ahead. I do not have to like what you are doing, I just have to work with it. > (It was the C++ compiler, I don't know if the C compiler would also > warn.) It would have to be spelled like this: > > #pragma warning(disable: 4068) /* MSVC: unknown pragma */ > #pragma GCC diagnostic ignored "-Wformat-zero-length" > > Dscho mentioned that he's compiling with MSVC. It would do him a favor. I am compiling with MSVC, and the idea is to tap into that large number of Windows developers who Git traditionally has had a really bad time attracting. From that perspective, I would say it would not only do me a favor, but anybody who builds Git for Windows using Visual Studio. But we also have to consider whether it would do anybody a "dis-favor". #pragma statements are by definition highly dependent on the compiler. I have no idea whether there are developers out there building Git with C compilers other than GCC, clang or MSVC (as I did back in the days on IRIX and HP/UX), but there is quite the potential for problems here [*1*]. To keep Git's source code truly portable, the #pragma would have to be guarded by a GCC-specific #ifdef ... #endif. Ciao, Dscho Footnote *1*: This is just another instance where a discussion on the Git mailing list reminds me of http://thedailywtf.com/articles/The_Complicator_0x27_s_Gloves, as it tries to avoid an obvious solution by trying to come up with a different solution that in turn requires additional solutions to additional problems caused by the alternative solution.