Hi Peff, On Wed, Apr 01, 2020 at 05:52:55AM -0400, Jeff King wrote: > On Wed, Apr 01, 2020 at 03:30:16AM -0400, Denton Liu wrote: > > > When compiling Git under -O0, gcc (Arch Linux 9.3.0-1) 9.3.0 produces > > many -Wmaybe-uninitialized warnings. These are false positives since > > when Git is compiled under -O2, gcc is smart enough to see that the > > code paths that use these variables all initialise them beforehand. > > Nonetheless, these warnings block the compilation process when > > DEVELOPER=1 is enabled (which enables -Werror). > > > > Fix these warnings by initializing these variables with dummy values (0, > > -1 or NULL as appropriate). > > Hmph. I almost always compile with -O0 and have been using gcc 9.3.0 > since it was packaged for Debian a few weeks ago, but I don't see any of > these warnings. > > The current version in Debian unstable is 9.3.0-8, which picks up some > extra patches from the upstream gcc-9 branch. But even if I download a > snapshot of the original 9.3.0 release, it builds fine. > > So why does your version behave differently? And if this is a temporary > state for a buggy version of gcc (that may be fixed in the next point > release), is it worth changing our source code to appease it? A correction to the earlier message... It seems like I wasn't reporting the correct settings. I was actually compiling with -Og, not -O0 (whoops!). I tested it with gcc-8 and it seems like it also reports the same problem. Also, -O1 reports warnings as well. I guess the question is do we only support -O0 and -O2 or should we support the levels in between as well? Sorry for the confusion, Denton > > -Peff