* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 May 2005 19:19:30 +0000 (19:19 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 May 2005 19:19:30 +0000 (19:19 +0000)
thread_across_edge for any abnormal edges.

* gcc.c-torture/compile/20050510-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99536 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20050510-1.c [new file with mode: 0644]
gcc/tree-ssa-dom.c

index 2442881..f6825db 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-10  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
+       thread_across_edge for any abnormal edges.
+
 2005-05-10  Richard Henderson  <rth@redhat.com>
 
        * config/ia64/ia64.c (ia64_expand_atomic_op): New.
index 52a0e37..55363ea 100644 (file)
@@ -1,3 +1,7 @@
+2005-05-10  Diego Novillo  <dnovillo@redhat.com>
+
+       * gcc.c-torture/compile/20050510-1.c: New test.
+
 2005-05-10  Mark Mitchell  <mark@codesourcery.com>
 
        * 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 (file)
index 0000000..3570f4f
--- /dev/null
@@ -0,0 +1,12 @@
+void bar (int k)
+{
+  void *label = (k) ? &&x : &&y;
+  if (k)
+    goto *label;
+
+x:
+  if (k)
+    dont_remove ();
+y:
+  return;
+}
index fa8e7d6..541ad4c 100644 (file)
@@ -986,18 +986,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))
               || TREE_CODE (COND_EXPR_COND (last)) == SSA_NAME)