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>