OSDN Git Service

2012-02-14 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Feb 2012 08:39:55 +0000 (08:39 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Feb 2012 08:39:55 +0000 (08:39 +0000)
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.

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

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

index b297a6d..0fc9120 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 c721510..cc6fae7 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 ea5834e..21689df 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 22f9d00..fa01583 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);
        }