From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Sat, 22 Nov 2014 07:56:35 +0100 Subject: [U-Boot] [PATCH] fix: tools: kwbimage.c: Initialize headersz to suppress warning In-Reply-To: <546F93D0.8040807@myspectrum.nl> 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> <546F93D0.8040807@myspectrum.nl> Message-ID: <20141122075635.1ada8679@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Jeroen > 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, I assume that you are presenting below an answer to a "general" case. However, as Thomas pointed out earlier, this "fix" is perfectly safe regarding the underlying kwbimage code. > 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. I got your point. > > > 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. Each subsequent "fix" for this kind of warning should be considered case by case IMHO, therefore I agree with Albert. > > Regards, > Jeroen Best regards, Lukasz Majewski -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available URL: