This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix write_symbol testsuite ICE
- From: Hans-Peter Nilsson <hp at bitrange dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 10 Jul 2010 21:03:01 -0400 (EDT)
- Subject: Re: Fix write_symbol testsuite ICE
- References: <20100710001844.GK9621@kam.mff.cuni.cz>
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);
>