From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeroen Hofstee Date: Fri, 21 Nov 2014 20:34:40 +0100 Subject: [U-Boot] [PATCH] fix: tools: kwbimage.c: Initialize headersz to suppress warning In-Reply-To: <20141121163059.31b19f9f@lilith> References: <1416558163-23614-1-git-send-email-l.majewski@samsung.com> <20141121093514.5166e9fd@free-electrons.com> <20141121102026.75aad6e2@amdc2363> <546F3161.1040906@myspectrum.nl> <20141121163059.31b19f9f@lilith> Message-ID: <546F93D0.8040807@myspectrum.nl> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Albert, On 21-11-14 16:30, Albert ARIBAUD wrote: > On Fri, 21 Nov 2014 13:34:41 +0100, Jeroen Hofstee > wrote: > >>>> But oh well, if it fixes a warning :-) >>> I didn't claim that there is a bug in the code :-). >>> >>> I just get annoying when on my continuous integration script I see the >>> same warning for all cross compiled boards. >> Wouldn't it be better to simply disable the -Wmaybe-uninitialized for >> gcc? > Disabling a warning is hiding potential dust under the carpet IMO Agreed in general, but not for this one, since "fixing" is the carpet, as far a I can tell. This is roughly the case which causes the warning e.g. (and variant like this with a switch, etc): ---------------------------------------------------------------------------------- char *a; if (something) a = something_valid [...] if (something) *a = 1; ---------------------------------------------------------------------------------- Some gcc versions start complaining about the second instance, that it _might_ be used uninitialized. With the "fix" this will no longer warn: ---------------------------------------------------------------------------------- char *a = 0; /* not valid, just set to stop gcc from complaining */ *a = 1; // paved away _error_, to suppress an invalid warning.. if (something) a = something_valid .... if (something) *a = 1; ---------------------------------------------------------------------------------- Since 0 is a perfectly valid address in u-boot it should emit no warning whatsoever, just crash at runtime. > and > the only justification I see as acceptable for doing so is when leaving > the warning enabled would cause an obnoxiously high number of false > positives. Well let me add, if "fixing the warning" causes real error to be hidden, we shouldn't "fix" the warnings by modifying valid code. Regards, Jeroen