Hello Albert,

On 21-11-14 16:30, Albert ARIBAUD wrote:
On Fri, 21 Nov 2014 13:34:41 +0100, Jeroen Hofstee
<jer...@myspectrum.nl> 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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to