From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22242 invoked by alias); 3 Apr 2013 10:10:13 -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 Received: (qmail 21919 invoked by uid 48); 3 Apr 2013 10:10:06 -0000 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/56501] [4.6/4.7 Regression] gcc 4.6 ICE on noreturn function at -Os and above Date: Wed, 03 Apr 2013 10:10:00 -0000 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: X-Bugzilla-Severity: minor X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.6.4 X-Bugzilla-Changed-Fields: Priority Status Last reconfirmed AssignedTo Ever Confirmed 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 X-SW-Source: 2013-04/txt/msg00233.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56501 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2013-04-03 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #3 from Richard Biener 2013-04-03 10:10:06 UTC --- Testing Index: gcc/tree-switch-conversion.c =================================================================== --- gcc/tree-switch-conversion.c (revision 197348) +++ gcc/tree-switch-conversion.c (working copy) @@ -283,7 +283,12 @@ check_process_case (tree cs) return false; } - e = single_succ_edge (label_bb); + if (!single_succ_p (label_bb)) + { + info.reason + = " Bad case - a non-final BB without a single successor\n"; + return false; + } following_bb = single_succ (label_bb); }