From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2263 invoked by alias); 18 Dec 2002 21:16:03 -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 2244 invoked by uid 71); 18 Dec 2002 21:16:02 -0000 Date: Wed, 18 Dec 2002 13:16:00 -0000 Message-ID: <20021218211602.2241.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Wolfgang Bangerth Subject: Re: optimization/8994: [3.2/3.3 regression] ICE with -O -march=pentium4 Reply-To: Wolfgang Bangerth X-SW-Source: 2002-12/txt/msg00970.txt.bz2 List-Id: The following reply was made to PR optimization/8994; it has been noted by GNATS. From: Wolfgang Bangerth To: "Joseph S. Myers" Cc: gcc-gnats@gcc.gnu.org Subject: Re: optimization/8994: [3.2/3.3 regression] ICE with -O -march=pentium4 Date: Wed, 18 Dec 2002 15:08:46 -0600 (CST) On Wed, 18 Dec 2002, Joseph S. Myers wrote: > On 18 Dec 2002, Wolfgang Bangerth wrote: > > > I may be blind, but if I remember right then a compound statement is a > > ({...}) thing, of which there is exactly one, and it does not have a label > > at its end. However, this warning is given by all gcc versions I checked. > > No, that's a statement expression, which contains a compound statement. > A compound statement is simply { ... }. Oh, sorry, then I was confused. Still, the testcase is ---------------------------- typedef union { double value; int lsw; } astr; void js_dtoa(double d) { while(1) if (( { astr sh_u; sh_u.value = d; sh_u.lsw; }) & 1) goto ret; ret: } --------------------------- Why is it warning about this: tmp/regression/test/PR8994.c: In function `js_dtoa': tmp/regression/test/PR8994.c:12: warning: deprecated use of label at end of compound statement The compound statement is then actually the function body, and this seems like a pretty common technique. Also, saying deprecated means that it is either deprecated by the standard, or it is illegal but accepted by gcc as an extension. It is the latter, right, since a label must be followed by another statement, and be it only ";". W. ------------------------------------------------------------------------- Wolfgang Bangerth email: bangerth@ticam.utexas.edu www: http://www.ticam.utexas.edu/~bangerth