Advice Wanted on sonic.c Indentation Warning
Joel Sherrill
joel at rtems.org
Tue Mar 22 15:30:32 UTC 2016
On Tue, Mar 22, 2016 at 10:25 AM, Martin Galvan <
martin.galvan at tallertechnologies.com> wrote:
> On Sat, Mar 19, 2016 at 15:59, Joel Sherrill <joel at rtems.org> wrote:
> > Hi
> >
> > GCC 6.0 previews give the indentation warning below
> >
> > ../../../../../rtems/c/src/libchip/network/sonic.c:837:11: warning:
> > statement is indented as if it were guarded by...
> [-Wmisleading-indentation]
> >
> > on this code from sonic.c.
> >
> > for (i = 0 ; i < 2 ; i++) {
> > if ((*sc->read_register)( rp, SONIC_REG_RRP ) ==
> > (*sc->read_register)( rp, SONIC_REG_RSA ))
> > (*sc->write_register)(
> > rp,
> > SONIC_REG_RRP,
> > (*sc->read_register)( rp, SONIC_REG_REA )
> > );
> > (*sc->write_register)(
> > rp,
> > SONIC_REG_RRP,
> > (*sc->read_register)(rp, SONIC_REG_RRP) -
> > sizeof(ReceiveResource_t)
> > );
> > }
> >
> > >From the comments, this code was written for RTEMS. Assuming it
> > works (and it did on both a DMV177 and erc32 Tharsys board), then
> > I am prone to add braces to the if and move the second write register
> > to the left.
>
> I'd honestly rewrite that entire snippet :)
>
> for (i = 0; i < 2; ++i) {
> uint32_t rrp = (*sc->read_register)( rp, SONIC_REG_RRP );
> const uint32_t rsa = (*sc->read_register)( rp, SONIC_REG_RSA );
>
> if (rrp == rsa) {
> const uint32_t rea = (*sc->read_register)( rp, SONIC_REG_REA );
> (*sc->write_register)( rp, SONIC_REG_RRP, rea );
> }
>
> rrp = (*sc->read_register)(rp, SONIC_REG_RRP);
> (*sc->write_register)( rp, SONIC_REG_RRP, rrp -
> sizeof(ReceiveResource_t) );
> }
>
> I re-read RRP because I don't know if it can change between both calls.
>
If you want to submit a patch and reference this email thread URL so
future generations know what was discussed, feel free. :)
--joel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160322/bbea4d66/attachment-0002.html>
More information about the devel
mailing list