]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR lto/54632 (not supported in LTO streams : tree code '�F ��D�� `)
authorRichard Guenther <rguenther@suse.de>
Mon, 24 Sep 2012 15:02:53 +0000 (15:02 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 24 Sep 2012 15:02:53 +0000 (15:02 +0000)
2012-09-24  Richard Guenther  <rguenther@suse.de>

PR middle-end/54632
* tree-ssa-live.c (clear_unused_block_pointer_1): Do not
handle DECL_DEBUG_EXPR_IS_FROM here...
(clear_unused_block_pointer): ... but here when walking all
local decls.

From-SVN: r191669

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

index 484df3673ad3b2390898dc1ce6a0a4a70dc4b396..f44e5b5e5c09239a5ee38bfa32bf08f1e77cc6cf 100644 (file)
@@ -1,3 +1,11 @@
+2012-09-24  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/54632
+       * tree-ssa-live.c (clear_unused_block_pointer_1): Do not
+       handle DECL_DEBUG_EXPR_IS_FROM here...
+       (clear_unused_block_pointer): ... but here when walking all
+       local decls.
+
 2012-09-24  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/54684
index af09806a2cf75e96c3e3c881bbbf0ccf1935ae3e..68361454b451250e9d43cf6924f526243e40ec33 100644 (file)
@@ -620,11 +620,6 @@ clear_unused_block_pointer_1 (tree *tp, int *, void *)
   if (EXPR_P (*tp) && TREE_BLOCK (*tp)
       && !TREE_USED (TREE_BLOCK (*tp)))
     TREE_SET_BLOCK (*tp, NULL);
-  if (TREE_CODE (*tp) == VAR_DECL && DECL_DEBUG_EXPR_IS_FROM (*tp))
-    {
-      tree debug_expr = DECL_DEBUG_EXPR (*tp);
-      walk_tree (&debug_expr, clear_unused_block_pointer_1, NULL, NULL);
-    }
   return NULL_TREE;
 }
 
@@ -636,6 +631,16 @@ clear_unused_block_pointer ()
 {
   basic_block bb;
   gimple_stmt_iterator gsi;
+  tree t;
+  unsigned i;
+
+  FOR_EACH_LOCAL_DECL (cfun, i, t)
+    if (TREE_CODE (t) == VAR_DECL && DECL_DEBUG_EXPR_IS_FROM (t))
+      {
+       tree debug_expr = DECL_DEBUG_EXPR (t);
+       walk_tree (&debug_expr, clear_unused_block_pointer_1, NULL, NULL);
+      }
+
   FOR_EACH_BB (bb)
     for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
       {