This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix write_symbol testsuite ICE


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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]