diff options
author | Richard Guenther <rguenther@suse.de> | 2012-02-14 08:39:55 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-02-14 08:39:55 +0000 |
commit | 837487be7baafd715566395ef75b0e0f16868e7b (patch) | |
tree | 69a9dfb528a98335e61c6964d9ba59459ba565e6 /gcc/tree.c | |
parent | f0ebe02d7fb107fa61c9f04b2dad2c63886b8c3d (diff) | |
download | gcc-837487be7baafd715566395ef75b0e0f16868e7b.zip gcc-837487be7baafd715566395ef75b0e0f16868e7b.tar.gz gcc-837487be7baafd715566395ef75b0e0f16868e7b.tar.bz2 |
re PR lto/52178 (Ada bootstrap failure in LTO mode)
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
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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); } |