From 0ffa2e92c9951e5601019804f46338edb4da3d03 Mon Sep 17 00:00:00 2001 From: rguenth Date: Tue, 14 Feb 2012 08:39:55 +0000 Subject: [PATCH] 2012-02-14 Richard Guenther 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 | 9 +++++++++ gcc/tree-streamer-in.c | 2 +- gcc/tree-streamer-out.c | 2 +- gcc/tree.c | 6 ++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b297a6d..0fc9120 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2012-02-14 Richard Guenther + + 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 PR c/52181 diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index c721510..cc6fae7 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -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); } diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index ea5834e..21689df 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -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); } diff --git a/gcc/tree.c b/gcc/tree.c index 22f9d00..fa01583 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -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); } -- 2.7.4