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]

Re: Fix write_symbol testsuite ICE


On Sat, 10 Jul 2010, Jan Hubicka wrote:

> 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.

Looks like this fixed PR44845, regarding
gcc.c-torture/compile/20011119-2.c.

>
> 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]