On Fri, Mar 30, 2012 at 09:49:51PM +0200, Dimitry Andric wrote: > On 2012-03-30 15:30, Stefan Farfeleder wrote: > >here are a few similar cases. > > Hm, what about this one that clang warns about: > > sys/dev/asr/asr.c:2420:57: warning: for loop has empty body [-Wempty-body] > for (ha = &Asr_softc_list; *ha; ha = &((*ha)->ha_next)); > ^ > sys/dev/asr/asr.c:2420:57: note: put the semicolon on a separate line to > silence this warning [-Wempty-body] > > I'm not sure about it though, the code looks like this: > > static int > asr_attach(device_t dev) > { > [...] > Asr_softc_t *sc, **ha; > [...] > LIST_INIT(&(sc->ha_ccb)); > /* Link us into the HA list */ > for (ha = &Asr_softc_list; *ha; ha = &((*ha)->ha_next)); > *(ha) = sc; > > It seems the for loop walks the list until the end, then tacks 'sc' onto > it. > > So to 'fix' the warning, and make the meaning more explicit, we should > probably rewrite that fragment as: > > LIST_INIT(&(sc->ha_ccb)); > /* Link us into the HA list */ > for (ha = &Asr_softc_list; *ha; ha = &((*ha)->ha_next)) > ; > *(ha) = sc;
I would really just move the ha = into the loop body -- same semantic and no such issue as a dangling ;. Joerg _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"