re PR lto/52178 (Ada bootstrap failure in LTO mode)
authorRichard Guenther <rguenther@suse.de>
Tue, 14 Feb 2012 08:39:55 +0000 (08:39 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 14 Feb 2012 08:39:55 +0000 (08:39 +0000)
2012-02-14  Richard Guenther  <rguenther@suse.de>

PR lto/52178
* tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
Do not stream DECL_QUALIFIER.
* tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
* tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
(find_decls_types_r): Do not walk DECL_QUALIFIER.

From-SVN: r184200

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

index b297a6d098417c7b8194794d339c8347de8b76b1..0fc9120318b1efc16e9bee3ef17c6c26e48ac68e 100644 (file)
@@ -1,3 +1,12 @@
+2012-02-14  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/52178
+       * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
+       Do not stream DECL_QUALIFIER.
+       * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
+       * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
+       (find_decls_types_r): Do not walk DECL_QUALIFIER.
+
 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/52181
index c7215105233a500ec2fd2b9b5e860763373a6b98..cc6fae7d83257f0d851b314a2650a2f54ac5fec4 100644 (file)
@@ -640,7 +640,7 @@ lto_input_ts_field_decl_tree_pointers (struct lto_input_block *ib,
 {
   DECL_FIELD_OFFSET (expr) = stream_read_tree (ib, data_in);
   DECL_BIT_FIELD_TYPE (expr) = stream_read_tree (ib, data_in);
-  DECL_QUALIFIER (expr) = stream_read_tree (ib, data_in);
+  /* Do not stream DECL_QUALIFIER, it is useless after gimplification.  */
   DECL_FIELD_BIT_OFFSET (expr) = stream_read_tree (ib, data_in);
   DECL_FCONTEXT (expr) = stream_read_tree (ib, data_in);
 }
index ea5834e41cec5532ee997b58e7a3d05b9a0da362..21689dfe5f2ffb4c4d63d25dc40168f53dbcb0ac 100644 (file)
@@ -552,7 +552,7 @@ write_ts_field_decl_tree_pointers (struct output_block *ob, tree expr,
 {
   stream_write_tree (ob, DECL_FIELD_OFFSET (expr), ref_p);
   stream_write_tree (ob, DECL_BIT_FIELD_TYPE (expr), ref_p);
-  stream_write_tree (ob, DECL_QUALIFIER (expr), ref_p);
+  /* Do not stream DECL_QUALIFIER, it is useless after gimplification.  */
   stream_write_tree (ob, DECL_FIELD_BIT_OFFSET (expr), ref_p);
   stream_write_tree (ob, DECL_FCONTEXT (expr), ref_p);
 }
index 22f9d007826b325ef0e4e48716f819a15a142066..fa01583a51855eecef96c4887a7c30c1b4faca5b 100644 (file)
@@ -4596,7 +4596,10 @@ free_lang_data_in_decl (tree decl)
   free_lang_data_in_one_sizepos (&DECL_SIZE (decl));
   free_lang_data_in_one_sizepos (&DECL_SIZE_UNIT (decl));
   if (TREE_CODE (decl) == FIELD_DECL)
-    free_lang_data_in_one_sizepos (&DECL_FIELD_OFFSET (decl));
+    {
+      free_lang_data_in_one_sizepos (&DECL_FIELD_OFFSET (decl));
+      DECL_QUALIFIER (decl) = NULL_TREE;
+    }
 
  if (TREE_CODE (decl) == FUNCTION_DECL)
     {
@@ -4800,7 +4803,6 @@ find_decls_types_r (tree *tp, int *ws, void *data)
        {
          fld_worklist_push (DECL_FIELD_OFFSET (t), fld);
          fld_worklist_push (DECL_BIT_FIELD_TYPE (t), fld);
-         fld_worklist_push (DECL_QUALIFIER (t), fld);
          fld_worklist_push (DECL_FIELD_BIT_OFFSET (t), fld);
          fld_worklist_push (DECL_FCONTEXT (t), fld);
        }