From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25915 invoked by alias); 15 Nov 2005 22:49:58 -0000 Received: (qmail 25903 invoked by uid 22791); 15 Nov 2005 22:49:56 -0000 Received: from mailfe02.swip.net (HELO swip.net) (212.247.154.33) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Tue, 15 Nov 2005 22:49:56 +0000 X-T2-Posting-ID: 2yF4ydxc0UI9xI7FHZPfog== Received: from 83.72.134.122.ip.tele2adsl.dk ([83.72.134.122] verified) by mailfe02.swip.net (CommuniGate Pro SMTP 5.0.1) with ESMTP id 15846254; Tue, 15 Nov 2005 23:53:17 +0100 From: Frans Englich To: John Love-Jensen Subject: Re: False positive warning: missing return statement and switch statements Date: Tue, 15 Nov 2005 22:49:00 -0000 User-Agent: KMail/1.8.50 Cc: "Steven L. Zook" , MSX to GCC References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200511152301.01499.frans.englich@telia.com> Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org X-SW-Source: 2005-11/txt/msg00229.txt.bz2 On Tuesday 15 November 2005 22:47, John Love-Jensen wrote: > Hi Frans, > > > Obviously, I am looking at this the wrong way -- please explain. > > Improve your code safety using C++ capabilities: > > int toInt(const Number num) > { > switch(num) > { > case Zero: > return 0; > case One: > return 1; > case Two: > return 2; > default: > throw std::range_error("toInt(): enum Number out of range"); > } > } > > Then the warning goes away, and your code is better. Yupp, that's what I currently do, in my case it unfortunately becomes a significant amount of code for dummy tests(because I know I'm behaving). Cheers, Frans