reorder bug in 3.0
Daniel Berlin
dan@cgsoftware.com
Tue Oct 9 08:19:00 GMT 2001
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
More information about the Gcc-bugs
mailing list