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]

Re: reorder bug in 3.0


Andrew Macleod <amacleod@cygnus.com> writes:

>>> |>=20
>>> |> I took rth's patch from July 29, and kept just the bare minimum required
>>> |> to fix the problem. I have bootstrapped a 3.0 branch with this patch=20
>>> |> on an ia64 machine.=20
>>> 
>>> Unfortunately, this is not enough.  The attached source still fails to
>>> compile on ia64-linux when applying the patch to the current snapshot as
>>> of 20011007.
>>> 
>>> $ gcc -O2 -g -c -v ld-collate.i=20
>
>
> In fact, it fails in the mainline 3.1 too.
>
>   for (node = limbo_die_list; node; node = next_node)
>     {
>
>       next_node = node->next;
>       die = node->die;
>
>       if (die->die_parent == NULL)
> 	{
> 	  dw_die_ref origin = get_AT_ref (die, DW_AT_abstract_origin);
> 	  if (origin)
> 	    add_child_die (origin->die_parent, die);
> 	  else if (die == comp_unit_die)
> 	    ;
>
> 	  else
> 	    abort ();     <<-- here
> 	}
>       free (node);
>     }
>
> I'll keep looking at it, but if it means anything to anyone:
> the die looks like:
Where is the die getting added from?
Break on new_die for the die it's aborting on.
It shouldn't be placed on the limbo die list unless it has no
parent. And if it has no parent, it should be a die with an abstract
origin (otherwise, where would we attach the die?)
--Dan


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