Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jun 2009 21:54:28 -0700
From:      Steve Kargl <sgk@troutmask.apl.washington.edu>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        Roman Divacky <rdivacky@freebsd.org>, current@freebsd.org
Subject:   Re: [PATCH]: if (cond); foo() in firewire
Message-ID:  <20090622045428.GA18123@troutmask.apl.washington.edu>
In-Reply-To: <d763ac660906212104w4bf066eatf5529779e603bd0e@mail.gmail.com>
References:  <20090621082022.GA88526@freebsd.org> <d763ac660906212104w4bf066eatf5529779e603bd0e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 22, 2009 at 12:04:49PM +0800, Adrian Chadd wrote:
> 2009/6/21 Roman Divacky <rdivacky@freebsd.org>:
> > hi
> >
> > is this patch correct? may I commit it?
> >
> > Index: ../../../dev/firewire/fwdev.c
> > ===================================================================
> > --- ../../../dev/firewire/fwdev.c       (revision 194573)
> > +++ ../../../dev/firewire/fwdev.c       (working copy)
> > @@ -443,7 +443,7 @@
> >        xfer->send.pay_len = uio->uio_resid;
> >        if (uio->uio_resid > 0) {
> >                if ((err = uiomove((caddr_t)&xfer->send.payload[0],
> > -                   uio->uio_resid, uio)));
> > +                   uio->uio_resid, uio)))
> >                        goto out;
> >        }
> >
> >
> > another bug found by the "useless warnings in clang" ;)
> 
> Is clang also evaluating all subsequent execution paths to tell you
> what the change in program flow is? :)
> 
> I hate to be the harbinger of evilness, but I'd at least attempt a
> cursory glance at the code to make sure subsequent code is doing the
> right thing. (It certainly looks like a vanilla userland transfer!)
> 
> 2c,

I agree with you.  Nothing like side effects to screw up 
a persons clang.

#include <stdio.h>
#include <stdlib.h>

static int
side_effect(int *i)
{
   *i = 42;
   return 0;
}

int 
main(void)
{
   int i;
   if (side_effect(&i));
   if (i == 42)
      printf("%d\n", i);
   return 0;
}

-- 
Steve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090622045428.GA18123>