This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] PR c++/27574
- From: Jason Merrill <jason at redhat dot com>
- To: Dodji Seketeli <dodji at redhat dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Gcc Patch List <gcc-patches at gcc dot gnu dot org>, jh at suse dot cz
- Date: Mon, 06 Oct 2008 18:35:22 -0400
- Subject: Re: [PATCH] PR c++/27574
- References: <48C056E3.firstname.lastname@example.org> <48DA9B09.email@example.com> <48DCDAA5.firstname.lastname@example.org> <48DD597D.email@example.com> <20080926215724.GB746@atrey.karlin.mff.cuni.cz> <48E24B64.firstname.lastname@example.org> <48EA68F0.email@example.com>
Dodji Seketeli wrote:
Jan, I did post a superset of Ian's patch to make the sanity check code
not cry when it encounters abstract functions. Could you please tell if
it looks okay to you so that I can push it to the released branches ?
The post is at http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01815.html.
Now for the approach to use in trunk, there is something I am not sure
My understanding is that for each node which node->decl is abstract,
we'd like to build a node->global->cloned_to list of nodes that points
to the clones of the abstract node.
That'd allow the code of cgraph_remove_node() check for the presence of
node->global->cloned_to list and not kill the body of the node if that
list is present.
I think it would be better to do it the other way around; if a function
we still need has DECL_ABSTRACT_ORIGIN, we need to keep the decl it
points to. But again, I don't know the cgraph code.