From 5fefbc7977471f39a91cc1d6a6146a5c0efd273d Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 10 May 2005 13:19:30 -0600 Subject: [PATCH] tree-ssa-dom.c (dom_opt_finalize_block): Do not call thread_across_edge for any abnormal edges. * tree-ssa-dom.c (dom_opt_finalize_block): Do not call thread_across_edge for any abnormal edges. * gcc.c-torture/compile/20050510-1.c: New test. From-SVN: r99536 --- gcc/ChangeLog | 5 +++++ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.c-torture/compile/20050510-1.c | 12 ++++++++++++ gcc/tree-ssa-dom.c | 12 ------------ 4 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/compile/20050510-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24428811ca2..f6825dbc3f0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-05-10 Jeff Law + + * tree-ssa-dom.c (dom_opt_finalize_block): Do not call + thread_across_edge for any abnormal edges. + 2005-05-10 Richard Henderson * config/ia64/ia64.c (ia64_expand_atomic_op): New. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 52a0e37b6ff..55363eaada1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-05-10 Diego Novillo + + * gcc.c-torture/compile/20050510-1.c: New test. + 2005-05-10 Mark Mitchell * gcc.dg/arm-vfp1.c: Remove test for fnegs. diff --git a/gcc/testsuite/gcc.c-torture/compile/20050510-1.c b/gcc/testsuite/gcc.c-torture/compile/20050510-1.c new file mode 100644 index 00000000000..3570f4f35b4 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20050510-1.c @@ -0,0 +1,12 @@ +void bar (int k) +{ + void *label = (k) ? &&x : &&y; + if (k) + goto *label; + +x: + if (k) + dont_remove (); +y: + return; +} diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index fa8e7d6f422..541ad4cea62 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -985,18 +985,6 @@ dom_opt_finalize_block (struct dom_walk_data *walk_data, basic_block bb) { thread_across_edge (walk_data, single_succ_edge (bb)); } - else if ((last = last_stmt (bb)) - && TREE_CODE (last) == GOTO_EXPR - && TREE_CODE (TREE_OPERAND (last, 0)) == SSA_NAME) - { - edge_iterator ei; - edge e; - - FOR_EACH_EDGE (e, ei, bb->succs) - { - thread_across_edge (walk_data, e); - } - } else if ((last = last_stmt (bb)) && TREE_CODE (last) == COND_EXPR && (COMPARISON_CLASS_P (COND_EXPR_COND (last)) -- 2.30.2