From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30625 invoked by alias); 6 Dec 2002 16:16:10 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 30593 invoked by uid 71); 6 Dec 2002 16:16:10 -0000 Date: Fri, 06 Dec 2002 08:16:00 -0000 Message-ID: <20021206161609.30581.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Christian Ehrhardt" Subject: Re: c/8828: gcc reports some code is unreachable when it is not Reply-To: "Christian Ehrhardt" X-SW-Source: 2002-12/txt/msg00366.txt.bz2 List-Id: The following reply was made to PR c/8828; it has been noted by GNATS. From: "Christian Ehrhardt" To: reichelt@igpm.rwth-aachen.de, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, rcampbell@tropicnetworks.com, gcc-gnats@gcc.gnu.org Cc: Subject: Re: c/8828: gcc reports some code is unreachable when it is not Date: Fri, 6 Dec 2002 17:13:43 +0100 On Fri, Dec 06, 2002 at 09:29:12AM -0000, reichelt@igpm.rwth-aachen.de wrote: > An even shorter example is the following: > > -----------------snip here---------------- > void foo(int i) > { > switch(i) { > case 0: > break; > case 1: > break; > } > } > -----------------snip here---------------- > > Compiling this with gcc 3.2.1 or mainline I get the message > > PR8828.c: In function `foo': > PR8828.c:7: warning: will never be executed > PR8828.c:5: warning: will never be executed Looks like warnings removed by the optimizer. In this case the optimizer will just remove both of the empty case labels and warn that the instructions therein (the breaks) aren't executed. In the original example the break is probably folded into the for loop an then optimized away. I even managed to get warnings for code like this: switch (i) { case 0: x++; break; case 1: x++; break; } where the optimizer tells me that it removed one of the x++ instructions probably because the two case labels were combined. This is probably not a bug, the documentation doesn't explicitly mention optimizations but it does mention that inlined function may produce warning for code that is unreachable only in a single inlined copy. This case looks rather similar. regards Christian -- THAT'S ALL FOLKS!