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 <rguenther@suse.de> 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
This commit is contained in:
parent
f06129ead4
commit
a88b313573
4 changed files with 24 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2012-01-20 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/51903
|
||||||
|
* tree-ssa-pre.c (eliminate): Properly purging of EH edges
|
||||||
|
when removing stmts.
|
||||||
|
|
||||||
2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
|
2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
|
||||||
|
|
||||||
PR target/50313
|
PR target/50313
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-01-20 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/51903
|
||||||
|
* g++.dg/torture/pr51903.C: New testcase.
|
||||||
|
|
||||||
2012-01-20 Tobias Burnus <burnus@net-b.de>
|
2012-01-20 Tobias Burnus <burnus@net-b.de>
|
||||||
Janus Weil <janus@gcc.gnu.org>
|
Janus Weil <janus@gcc.gnu.org>
|
||||||
|
|
||||||
|
|
9
gcc/testsuite/g++.dg/torture/pr51903.C
Normal file
9
gcc/testsuite/g++.dg/torture/pr51903.C
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
// { dg-do compile }
|
||||||
|
// { dg-options "-O2 -fnon-call-exceptions -fno-guess-branch-probability" }
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
void foo ()
|
||||||
|
{
|
||||||
|
std::vector < std::vector< int > > (20000);
|
||||||
|
}
|
|
@ -4541,8 +4541,10 @@ eliminate (void)
|
||||||
gsi = gsi_for_stmt (stmt);
|
gsi = gsi_for_stmt (stmt);
|
||||||
unlink_stmt_vdef (stmt);
|
unlink_stmt_vdef (stmt);
|
||||||
gsi_remove (&gsi, true);
|
gsi_remove (&gsi, true);
|
||||||
if (gimple_purge_dead_eh_edges (bb))
|
/* ??? gsi_remove doesn't tell us whether the stmt was
|
||||||
todo |= TODO_cleanup_cfg;
|
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)
|
if (TREE_CODE (lhs) == SSA_NAME)
|
||||||
bitmap_clear_bit (inserted_exprs, SSA_NAME_VERSION (lhs));
|
bitmap_clear_bit (inserted_exprs, SSA_NAME_VERSION (lhs));
|
||||||
release_defs (stmt);
|
release_defs (stmt);
|
||||||
|
|
Loading…
Add table
Reference in a new issue