Re: [PATCH] Fix maybe-uninitialized warnings found by gcc 9 -flto
- From
Jeff King <peff@peff.net>
- Date
- Sep 5, 2019, 22:48 UTC
- Message-ID
- <20190905224859.GA28660@sigill.intra.peff.net>
- In-Reply-To
- <20190905082459.26816-1-s-beyer@gmx.net>
On Thu, Sep 05, 2019 at 10:24:59AM +0200, Stephan Beyer wrote:
Show 6 quoted lines
> Compiler heuristics for detection of potentially uninitialized variables > may change between compiler versions and enabling link-time optimization > may find new warnings. Indeed, compiling with gcc 9.2.1 and enabled > link-time optimization feature resulted in a few hits that are fixed by > this patch in the most naïve way. This allows to compile git using the > DEVELOPER=1 switch (which sets -Werror) and using the -flto flag.
Lots of discussion in this thread. Let's try to turn it into some patches. :)
After the patches below, I can compile cleanly with gcc 9.2.1 using -flto with both -O2 and -O3 (some of the cases only seemed to trigger for me with -O3).
I've ordered them in decreasing value. The first one is a real bugfix, the second is a related cleanup. The next 3 are appeasing the compiler, but I think are a good idea (but note I went more for root causes than your originals). The last one is perhaps more controversial, but IMHO worth doing.
[1/6]: git-am: handle missing "author" when parsing commit [2/6]: pack-objects: use object_id in packlist_alloc() [3/6]: bulk-checkin: zero-initialize hashfile_checkpoint [4/6]: diff-delta: set size out-parameter to 0 for NULL delta [5/6]: test-read-cache: drop namelen variable [6/6]: pack-objects: drop packlist index_pos optimization
builtin/am.c | 4 +++- builtin/pack-objects.c | 33 ++++++++++++++------------------- bulk-checkin.c | 2 +- diff-delta.c | 2 ++ pack-bitmap-write.c | 2 +- pack-bitmap.c | 2 +- pack-objects.c | 20 ++++++++++---------- pack-objects.h | 6 ++---- t/helper/test-read-cache.c | 5 ++--- 9 files changed, 36 insertions(+), 40 deletions(-)
-Peff