From a88b3135730c7e2334812b9e4ec5631f00446015 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Fri, 20 Jan 2012 10:10:46 +0000 Subject: re PR tree-optimization/51903 (ICE: in gimple_purge_all_dead_eh_edges, at tree-cfg.c:7196 with -fnon-call-exceptions) 2012-01-20 Richard Guenther PR tree-optimization/51903 * tree-ssa-pre.c (eliminate): Properly purging of EH edges when removing stmts. * g++.dg/torture/pr51903.C: New testcase. From-SVN: r183329 --- gcc/tree-ssa-pre.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gcc/tree-ssa-pre.c') diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index c5d253c..b95ac78 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -4541,8 +4541,10 @@ eliminate (void) gsi = gsi_for_stmt (stmt); unlink_stmt_vdef (stmt); gsi_remove (&gsi, true); - if (gimple_purge_dead_eh_edges (bb)) - todo |= TODO_cleanup_cfg; + /* ??? gsi_remove doesn't tell us whether the stmt was + in EH tables and thus whether we need to purge EH edges. + Simply schedule the block for a cleanup. */ + bitmap_set_bit (need_eh_cleanup, bb->index); if (TREE_CODE (lhs) == SSA_NAME) bitmap_clear_bit (inserted_exprs, SSA_NAME_VERSION (lhs)); release_defs (stmt); -- cgit v1.1