re PR debug/47647 (BLOCKs are empty)
authorRichard Guenther <rguenther@suse.de>
Sat, 19 Feb 2011 19:50:36 +0000 (19:50 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Sat, 19 Feb 2011 19:50:36 +0000 (19:50 +0000)
2011-02-18  Richard Guenther  <rguenther@suse.de>

PR lto/47647
* lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
Remove lazy BLOCK_VARS streaming.
(lto_input_ts_block_tree_pointers): Likewise.
* lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.

From-SVN: r170321

gcc/ChangeLog
gcc/lto-streamer-in.c
gcc/lto-streamer-out.c

index 62a9c64f2262a5c71658ede1f1d43274450ebb90..92416b15665edecd618eb493541f81207e55b2a9 100644 (file)
@@ -1,3 +1,11 @@
+2011-02-19  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/47647
+       * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
+       Remove lazy BLOCK_VARS streaming.
+       (lto_input_ts_block_tree_pointers): Likewise.
+       * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
+
 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
 
        * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
index 1f0cf29d35ad0677e18fea11582ff53335f853f0..5f5b263c4cd7deaf6cf8281c71a3d4c120869346 100644 (file)
@@ -1960,13 +1960,6 @@ lto_input_ts_decl_minimal_tree_pointers (struct lto_input_block *ib,
 {
   DECL_NAME (expr) = lto_input_tree (ib, data_in);
   DECL_CONTEXT (expr) = lto_input_tree (ib, data_in);
-  /* We do not stream BLOCK_VARS but lazily construct it here.  */
-  if (DECL_CONTEXT (expr)
-      && TREE_CODE (DECL_CONTEXT (expr)) == BLOCK)
-    {
-      TREE_CHAIN (expr) = BLOCK_VARS (DECL_CONTEXT (expr));
-      BLOCK_VARS (DECL_CONTEXT (expr)) = expr;
-    }
   DECL_SOURCE_LOCATION (expr) = lto_input_location (ib, data_in);
 }
 
@@ -2188,8 +2181,7 @@ lto_input_ts_block_tree_pointers (struct lto_input_block *ib,
   unsigned i, len;
 
   BLOCK_SOURCE_LOCATION (expr) = lto_input_location (ib, data_in);
-  /* We do not stream BLOCK_VARS but lazily construct it when reading
-     in decls.  */
+  BLOCK_VARS (expr) = lto_input_chain (ib, data_in);
 
   len = lto_input_uleb128 (ib);
   if (len > 0)
index d1aac239f77b6d1d75682ed88d3c305a3bd3b264..bb2985a450dea6269561f1dc86bdfb0c8fed738d 100644 (file)
@@ -1057,8 +1057,7 @@ lto_output_ts_block_tree_pointers (struct output_block *ob, tree expr,
   tree t;
 
   lto_output_location (ob, BLOCK_SOURCE_LOCATION (expr));
-  /* We do not stream BLOCK_VARS but lazily construct it when reading
-     in decls.  */
+  lto_output_chain (ob, BLOCK_VARS (expr), ref_p);
 
   output_uleb128 (ob, VEC_length (tree, BLOCK_NONLOCALIZED_VARS (expr)));
   FOR_EACH_VEC_ELT (tree, BLOCK_NONLOCALIZED_VARS (expr), i, t)