From: Lasse Collin Date: Wed, 4 Nov 2015 21:14:00 +0000 (+0200) Subject: liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma. X-Git-Tag: v5.3.1alpha~47 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=14115f84a38161d55eaa2d070f08739bde37e966;p=thirdparty%2Fxz.git liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma. When optimizing, GCC can reorder code so that an uninitialized value gets used in a comparison, which makes Valgrind unhappy. It doesn't happen when compiled with -O0, which I tend to use when running Valgrind. Thanks to Rich Prohaska. I remember this being mentioned long ago by someone else but nothing was done back then. --- diff --git a/src/liblzma/lz/lz_encoder.c b/src/liblzma/lz/lz_encoder.c index 48bc487d..5a2be798 100644 --- a/src/liblzma/lz/lz_encoder.c +++ b/src/liblzma/lz/lz_encoder.c @@ -541,7 +541,11 @@ lzma_lz_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator, next->coder->lz.code = NULL; next->coder->lz.end = NULL; + // mf.size is initialized to silence Valgrind + // when used on optimized binaries (GCC may reorder + // code in a way that Valgrind gets unhappy). next->coder->mf.buffer = NULL; + next->coder->mf.size = 0; next->coder->mf.hash = NULL; next->coder->mf.son = NULL; next->coder->mf.hash_count = 0;