From 2ebbdb6ca3f69cdac97aeba48a7f00ea40337cd5 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 30 Aug 2018 17:05:38 +0200 Subject: lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow TYPE_STUB_DECL. * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow TYPE_STUB_DECL. (hash_tree): Do not visit TYPE_STUB_DECL. * tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not stream TYPE_STUB_DECL. * tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise. * ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL after free_lang_data. (type_in_anonymous_namespace_p): Likewise. From-SVN: r263985 --- gcc/tree-streamer-out.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/tree-streamer-out.c') diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index d86f352..60ec178 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -686,7 +686,9 @@ write_ts_type_common_tree_pointers (struct output_block *ob, tree expr, stream_write_tree (ob, TYPE_CONTEXT (expr), ref_p); /* TYPE_CANONICAL is re-computed during type merging, so no need to stream it here. */ - stream_write_tree (ob, TYPE_STUB_DECL (expr), ref_p); + /* Do not stream TYPE_STUB_DECL; it is not needed by LTO but currently + it can not be freed by free_lang_data without triggering ICEs in + langhooks. */ } /* Write all pointer fields in the TS_TYPE_NON_COMMON structure of EXPR -- cgit v1.1