This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH Re: c++/4122: undefined reference to `non-virtual thunk to ...'
- From: law at redhat dot com
- To: Jason Merrill <jason at redhat dot com>
- Cc: Robert Boehne <rboehne at ricardo-us dot com>, gcc-gnats at gcc dot gnu dot org, juergen at monocerus dot demon dot co dot uk, boehme at informatik dot hu-berlin dot de, loewis at informatik dot hu-berlin dot de, gcc-bugs at gcc dot gnu dot org, michael at ritzert dot de, gcc-patches at gcc dot gnu dot org
- Date: Fri, 21 Dec 2001 13:54:59 -0700
- Subject: Re: PATCH Re: c++/4122: undefined reference to `non-virtual thunk to ...'
- Reply-to: law at redhat dot com
> Thanks for the testcase; please give this a try. The problem was that we
> had calculated the -4 offset for a lost primary, the primary base was
> regained in the constructor vtable, and so the calculated offset was
> wrong.
>
> 2001-12-21 Jason Merrill <jason@redhat.com>
>
> * class.c (update_vtable_entry_for_fn): Set delta to zero for a
> lost primary.
>
> * class.c (build_vtbl_initializer): Check for a lost primary
> before calculating the vtable entry to throw away.
Thanks.
FWIW, I tried this on my testcases locally and it didn't make any noticable
difference (sid & ecosconfig).
There's still two distinct issues.
1. Some thunks are being defined with local scope
2. We are not calling assemble_external when we reference certain thunks.
I'll try to get you testcases for both these issues today.
jeff