From patchwork Sat Jul 10 00:18:44 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Fix write_symbol testsuite ICE Date: Fri, 09 Jul 2010 14:18:44 -0000 From: Jan Hubicka X-Patchwork-Id: 58446 Message-Id: <20100710001844.GK9621@kam.mff.cuni.cz> To: gcc-patches@gcc.gnu.org Hi, this patch fixes the ICE while streaming out alias nodes. It is all somewhat ugly, since some aliases have varpool/cgraph nodes while others doesn't depending on if they are or are not used in code... Bootstrapped/regtested x86_64-linux, comitted as obvious. Honza 2010-07-09 Jan Hubicka * lto-streamer-out.c (produce_symtab): Do not write alias cgraph/varpool nodes. Index: lto-streamer-out.c =================================================================== --- lto-streamer-out.c (revision 161956) +++ lto-streamer-out.c (working copy) @@ -2399,6 +2399,8 @@ produce_symtab (struct output_block *ob, for (i = 0; i < lto_cgraph_encoder_size (encoder); i++) { node = lto_cgraph_encoder_deref (encoder, i); + if (node->alias) + continue; write_symbol (cache, &stream, node->decl, seen, false); for (alias = node->same_body; alias; alias = alias->next) write_symbol (cache, &stream, alias->decl, seen, true); @@ -2408,6 +2410,8 @@ produce_symtab (struct output_block *ob, for (i = 0; i < lto_varpool_encoder_size (varpool_encoder); i++) { vnode = lto_varpool_encoder_deref (varpool_encoder, i); + if (vnode->alias) + continue; write_symbol (cache, &stream, vnode->decl, seen, false); for (valias = vnode->extra_name; valias; valias = valias->next) write_symbol (cache, &stream, valias->decl, seen, true);