NeilBrown <neilb@xxxxxxxx> writes: > Michael Shigorin reports that the 'lcc' compiler isn't able > to deduce that 'st' must be initialized in > > if (c->SparcAdjust) > st->ss->update_super(st, NULL, "sparc2.2", > > just because the only times it isn't initialised, 'err' is set non-zero. > > This results in a 'possibly uninitialised' warning. > While there is no bug in the code, this does suggest that maybe > the code could be made more obviously correct. > > So this patch: > 1/ moves the "err" variable inside the for loop, so an error in > one device doesn't stop the other devices from being processed > 2/ calls 'continue' early if the device cannot be opened, so that > a level of indent can be removed, and so that it is clear that > 'st' is always initialised before being used > 3/ frees 'st' if an error occured in load_super or load_container. > > Reported-by: Michael Shigorin <mike@xxxxxxxxxxxx> > Signed-off-by: NeilBrown <neilb@xxxxxxxx> > --- > Examine.c | 75 +++++++++++++++++++++++++++++++++------------------------------ > 1 file changed, 39 insertions(+), 36 deletions(-) Applied! Thanks, Jes -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html