This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: reorder bug in 3.0
- To: Andrew Macleod <amacleod at cygnus dot com>
- Subject: Re: reorder bug in 3.0
- From: Daniel Berlin <dan at cgsoftware dot com>
- Date: Tue, 09 Oct 2001 11:19:34 -0400
- Cc: schwab at suse dot de, gcc-bugs at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org,rth at redhat dot com
- References: <200110091456.HAA09452@rtl.cygnus.com>
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