From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NrzeT-0005rv-Dr for qemu-devel@nongnu.org; Wed, 17 Mar 2010 16:15:37 -0400 Received: from [199.232.76.173] (port=41649 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NrzeS-0005qg-H6 for qemu-devel@nongnu.org; Wed, 17 Mar 2010 16:15:36 -0400 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NrzeR-0005nI-QI for qemu-devel@nongnu.org; Wed, 17 Mar 2010 16:15:36 -0400 Received: from mail-pw0-f45.google.com ([209.85.160.45]:63889) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NrzeR-0005nA-FY for qemu-devel@nongnu.org; Wed, 17 Mar 2010 16:15:35 -0400 Received: by pwi9 with SMTP id 9so1082606pwi.4 for ; Wed, 17 Mar 2010 13:15:33 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <201003171743.06728.paul@codesourcery.com> References: <1268053115.2130.4.camel@localhost.localdomain> <201003171708.04633.paul@codesourcery.com> <4BA10E49.90703@codemonkey.ws> <201003171743.06728.paul@codesourcery.com> Date: Wed, 17 Mar 2010 22:15:33 +0200 Message-ID: Subject: Re: [Qemu-devel] [PATCH] [TRIVIAL] usb-linux: remove unreachable default in switch statement From: Blue Swirl Content-Type: text/plain; charset=UTF-8 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: Paul Bolle , qemu-devel@nongnu.org On 3/17/10, Paul Brook wrote: > > > If something should never happen (as in this case) then an abort/assert > > > is completely appropriate. Once things get that screwed up there's no > > > right answer, and the best thing we can do is terminate immediately to > > > try and avoid further damage. > > > > This case was: > > > > switch (foo & 0x03) { > > case 0: case 1: case 2: case 3: > > default: > > } > > > > The default is unreachable. Having it there just introduces more code > > that serves no purpose. Unless someone does something totally foolish > > and changes the mask in the switch statement, there's no way it will > > ever be reachable. > > > I mistakenly remembered this was using a symbolic mask rather than a literal > 0x03. In that case I'd argue it's much easier to make the dumb error you > describe, and the assert can be a handy cluebat. > > I guess it's largely personal preference - I prefer to add the default case to > make it clear that falling through is never gong to be the right answer. This breaks build (gcc 4.3.2): CC usb-linux.o cc1: warnings being treated as errors /src/qemu/usb-linux.c: In function 'usb_linux_update_endp_table': /src/qemu/usb-linux.c:759: error: 'type' may be used uninitialized in this function