This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix c++ ABI failures
- From: Jakub Jelinek <jakub at redhat dot com>
- To: "David S. Miller" <davem at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, mark at codesourcery dot com
- Date: Tue, 30 Apr 2002 18:17:59 -0400
- Subject: Re: Fix c++ ABI failures
- References: <20020430.145425.127678124.davem@redhat.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Apr 30, 2002 at 02:54:25PM -0700, David S. Miller wrote:
> 2002-04-30 Mark Mitchell <mark@codesourcery.com>
>
> * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
> TYPE_HAS_TRIVIAL_INIT_REF is false or
> TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
I think the ChangeLog entry should be marked with `ABI change'
like other ABI changes were.
Still, the question is how should be classes with non-trivial constructors or
destructors passes on sparc64, ia64 and other ABIs which pass records in
registers.
It is clear that such classes have to be passed somewhere in memory, but
some ABIs might want to promote them into registers in some cases
and/or pass them in some particular memory slot as opposed to passing them
by invisible reference.
Jakub