From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8683 invoked by alias); 16 Feb 2012 23:55:35 -0000 Received: (qmail 8671 invoked by uid 22791); 16 Feb 2012 23:55:34 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 16 Feb 2012 23:54:47 +0000 From: "joseph at codesourcery dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/52283] "error: case label does not reduce to an integer constant" for constant folded cast expr Date: Thu, 16 Feb 2012 23:56:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: joseph at codesourcery dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-02/txt/msg01746.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52283 --- Comment #10 from joseph at codesourcery dot com 2012-02-16 23:52:21 UTC --- On Thu, 16 Feb 2012, manu at gcc dot gnu.org wrote: > Talking about this particular case (folding in build_c_cast), is this actually > needed here? Couldn't GCC just delay folding until actually needed? The only c_fully_fold call in build_c_cast is when a CONSTRUCTOR is generated from a cast to union (a GNU extension). That's a case of avoiding any problems recursing later inside CONSTRUCTORs (which are not particularly normal expressions). The option to delay would be to have some other representation of that cast which is only later lowered to a CONSTRUCTOR (with the inside expression being folded at that later time).