From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18764 invoked by alias); 25 Sep 2005 16:00:58 -0000 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org Received: (qmail 18740 invoked by uid 48); 25 Sep 2005 16:00:57 -0000 Date: Sun, 25 Sep 2005 16:00:00 -0000 Message-ID: <20050925160057.18739.qmail@sourceware.org> From: "pinskia at gcc dot gnu dot org" To: java-prs@gcc.gnu.org In-Reply-To: <20050118145002.19505.overholt@redhat.com> References: <20050118145002.19505.overholt@redhat.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/19505] [4.0/4.1 Regression] Java bytecode ICE in except.c remove_unreachable_regions X-Bugzilla-Reason: CC X-SW-Source: 2005-q3/txt/msg00646.txt.bz2 List-Id: ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-25 16:00 ------- The patch is: Index: tree-cfgcleanup.c =============================================================== ==== RCS file: /cvs/gcc/gcc/gcc/tree-cfgcleanup.c,v retrieving revision 2.7 diff -u -p -r2.7 tree-cfgcleanup.c --- tree-cfgcleanup.c 19 Aug 2005 18:52:55 -0000 2.7 +++ tree-cfgcleanup.c 24 Sep 2005 23:30:54 -0000 @@ -392,7 +392,18 @@ remove_forwarder_block (basic_block bb, return false; } } - + /* Check to make sure that we can remove a forwarder block for eh edges. */ + FOR_EACH_EDGE (e, ei, bb->preds) + { + /* This check is too strong, we should also be checking eh regions + but this is much harder. */ + if (e->flags & EDGE_EH) + { + if (!single_pred_p (dest)) + return false; + } + } + /* Redirect the edges. */ for (ei = ei_start (bb->preds); (e = ei_safe_edge (ei)); ) { Which I will post after testing. I posted the checking patch here: http://gcc.gnu.org/ml/gcc-patches/2005-09/msg01559.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19505