From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12662 invoked by alias); 8 Feb 2011 12:09:34 -0000 Received: (qmail 12645 invoked by uid 22791); 8 Feb 2011 12:09:30 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_TM 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; Tue, 08 Feb 2011 12:09:24 +0000 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/47639] [4.5/4.6 Regression] ICE: verify_stmts failed: statement marked for throw, but doesn't with -fstack-check=generic -fexceptions -fnon-call-exceptions X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Keywords: ice-checking, ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.5.3 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 Date: Tue, 08 Feb 2011 12:12:00 -0000 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: 2011-02/txt/msg00995.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47639 --- Comment #3 from Richard Guenther 2011-02-08 12:09:09 UTC --- Ugh. We lower [LP 1] D.2691_8 = v1_6(D) / v2_7(D); to D.2699_13 = BIT_FIELD_REF ; D.2700_14 = BIT_FIELD_REF ; D.2701_15 = D.2699_13 / D.2700_14; D.2702_16 = BIT_FIELD_REF ; D.2703_17 = BIT_FIELD_REF ; D.2704_18 = D.2702_16 / D.2703_17; [LP 1] D.2691_8 = {D.2701_15, D.2704_18}; now the most ugly part of that is we construct a big tree with the CONSTRUCTOR and then feed that to force_gimple_operand ... What I did in the patch that caused this is to make {D.2701_15, D.2704_18} not throw - which exposes this bug. We can hide this issue again by properly clearing EH info on the CONSTRUCTOR statement, leaving the issue alone that we'd really need to move EH info to the piecewise computations, split the block, add new EH edges, etc. Not worthwhile for stage4 and not a regression. C++ testcase that fails with -fnon-call-exceptions only: typedef int __attribute__ ((vector_size (8))) vec; vec foo (vec v1, vec v2) { try { return v1 / v2; } catch (...) { throw; } }