Date: Mon, 09 Feb 2009 15:48:24 +0100 From: Christoph Mallon <christoph.mallon@gmx.de> To: Hans Petter Selasky <hselasky@c2i.net> Cc: usb@freebsd.org, freebsd-current@freebsd.org Subject: Re: HEADSUP usb2/usb4bsd to become default in GENERIC Message-ID: <49904238.50505@gmx.de> In-Reply-To: <200902091534.12506.hselasky@c2i.net> References: <20090206045349.GQ78804@elvis.mu.org> <200902091450.07014.hselasky@c2i.net> <499038DE.3050501@gmx.de> <200902091534.12506.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hans Petter Selasky schrieb: > On Monday 09 February 2009, Christoph Mallon wrote: >> Hans Petter Selasky schrieb: >>> On Monday 09 February 2009, Christoph Mallon wrote: >>>> Christoph Mallon schrieb: >>>>> are named "err" or "error". This should be investigated, so here's the >>>>> complete list: >>>> Sorry, my MUA seems to have damaged the list. You can get the list here: >>>> http://tron.homeunix.org/usb2.unread.log >>> I think some of these errors depend if you have USB debugging compiled or >>> not. At least GCC does not warn? >> No, it does not depend on USB debugging. >> GCC has no warning at all for variables which are only assigned to. >> It only can warn about variables, which are only initialised. >> >> { >> int x = 23; // GCC warns here ... >> int y; // ... but not here - cparser does >> y = 42; >> y++; >> } >> >> cparser has an analysis, which can warn about "y", too. >> >> I manually verified all 40 warnings and I cannot find any users (i.e. >> readers) for these variables. > > What is the correct way to discard the return argument of a function? That's > basically what most of the warnings are about. > > 1) (void)my_fn() cast > 2) if (my_fn()) { } > 3) err = my_fn(); > 4) my_fn(); Just to understand this correctly: You want to discard error codes? Basically I see four categories: 1) Getting the softc and not using it. This can be removed completely. Example: sc = ATMEGA_BUS2SC(xfer->xroot->bus); 2) calling mtx_owned() and discarding the return value. Can be removed, too, after checking that the value is really unnecessary. Example: use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; 3) Getting some value and not using it. Can be removed, too, after checking that the value is really unnecessary. Example: ep_no = (xfer->endpoint & UE_ADDR); 4) The rest are return values of functions, which contain error codes. Discarding them is questionable at best. Example: (err is not read) if (udev->flags.suspended) { err = DEVICE_SUSPEND(iface->subdev); device_printf(iface->subdev, "Suspend failed\n"); } return (0); /* success */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49904238.50505>