re PR tree-optimization/52424 (dom prematurely pops entries from const_and_copies...
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Wed, 29 Feb 2012 13:06:28 +0000 (13:06 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Wed, 29 Feb 2012 13:06:28 +0000 (13:06 +0000)
2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/52424
* tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
calling dom_thread_across_edge.

From-SVN: r184662

gcc/ChangeLog
gcc/tree-ssa-dom.c

index 0e032a8eb7aab7fea76c5bf30400c6a90c507724..3a59fe7c1b184a612fa4ca4a2906783d2d00f22a 100644 (file)
@@ -1,3 +1,9 @@
+2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/52424
+       * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
+       calling dom_thread_across_edge.
+
 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
 
        * config/avr/avr.c: Move definition of TARGET macros to end of file.
index a9a658f2c44b9a51032d8cfe41baebef675e3407..4ea9644dd277e26d6db4e37af9fa1254f815922d 100644 (file)
@@ -1779,6 +1779,9 @@ dom_opt_leave_block (struct dom_walk_data *walk_data, basic_block bb)
       && (single_succ_edge (bb)->flags & EDGE_ABNORMAL) == 0
       && potentially_threadable_block (single_succ (bb)))
     {
+      /* Push a marker on the stack, which thread_across_edge expects
+        and will remove.  */
+      VEC_safe_push (tree, heap, const_and_copies_stack, NULL_TREE);
       dom_thread_across_edge (walk_data, single_succ_edge (bb));
     }
   else if ((last = last_stmt (bb))