Fix write_symbol testsuite ICE
Jan Hubicka
hubicka@ucw.cz
Sat Jul 10 00:18:00 GMT 2010
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 <jh@suse.cz>
* 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);
More information about the Gcc-patches
mailing list