diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-19 07:57:44 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-19 07:57:44 +0000 |
commit | 4517f7e7ac7c7d6d0c793b29eccda5ead7c5d489 (patch) | |
tree | 9c3c3f9957eb4b87e7976b5b57d29f4fe6005959 /gcc/lto-streamer-out.c | |
parent | 7da26bee9e71e6d724c551de41c0b49aed446e02 (diff) | |
download | gcc-4517f7e7ac7c7d6d0c793b29eccda5ead7c5d489.tar.gz |
2014-08-19 Richard Biener <rguenther@suse.de>
* lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
DECL_EXTERNALs in BLOCKs as non-references.
* tree-streamer-out.c (streamer_write_chain): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214135 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto-streamer-out.c')
-rw-r--r-- | gcc/lto-streamer-out.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 1dc37efc2b8..00a7badd9e7 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -648,9 +648,13 @@ DFS::DFS_write_tree_body (struct output_block *ob, if (CODE_CONTAINS_STRUCT (code, TS_BLOCK)) { for (tree t = BLOCK_VARS (expr); t; t = TREE_CHAIN (t)) - /* ??? FIXME. See also streamer_write_chain. */ - if (!(VAR_OR_FUNCTION_DECL_P (t) - && DECL_EXTERNAL (t))) + if (VAR_OR_FUNCTION_DECL_P (t) + && DECL_EXTERNAL (t)) + /* We have to stream externals in the block chain as + non-references. See also + tree-streamer-out.c:streamer_write_chain. */ + DFS_write_tree (ob, expr_state, t, ref_p, false, single_p); + else DFS_follow_tree_edge (t); DFS_follow_tree_edge (BLOCK_SUPERCONTEXT (expr)); |