This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gcc 3.0.1 & C++ ABI issues




--On Sunday, August 05, 2001 08:26:28 PM +0100 Nathan Sidwell 
<nathan@codesourcery.com> wrote:

> Guys,
> Stefan has emailed me, regarding the state of 3.0.1 wrt KDE. Here's my
> summary

Thank you for putting this together.

> As it's now the 5th August, I do not think we will have a KDEable compiler
> with 3.0.1. The patch set from which I extracted 3909's fix is still
> incomplete and I am unlikely to have time to work on it until late August.
> Once I'm happy with that patch set, I'll see if KDE starts working with
> it.

That sounds like the right plan to me.  I'm sure that 3.0.1 is better than
3.0, C++-wise, and that is good.

> There are some outstanding empty class issues. Jason had some queries with
> the patch I posted
> (http://gcc.gnu.org/ml/gcc-patches/2001-08/msg00002.html) concerning
> copying empty classes. Have you had time to consider my response?

I think the patch is OK, with the better comment that evolved out of the
discussion.  If the standard doesn't mandate that the ctor/dtor
pairing happen the way the testcase wants it to, I think it's OK that
you change it -- but in such a way that, as you say, you count the
ctors/dtors to make sure the RVO is still happenning.  So, this patch
is approved.

> There appears to be something strange with passing empty classes by value
> (http://gcc.gnu.org/ml/gcc-bugs/2001-08/msg00136.html). In spite of
> the subject, this is nothing to do with multiple inheritance. The ABI doc
> specifies (3.1.1), that value parameters need to be passed by reference
> if they have a non-trivial copy ctor or dtor. At first glance we appear
> to only check the former. So, although we're consistent, we're at variance
> from the spec.

I think we should fix this on the mainline, but not on the branch.  Our
current working assumption is that the ABI for the library is going
to change wildly on the mainline, forcing recompilation for most
people in 3.1 anyhow, and so we can hide minor core ABI changes beneath
that cover.  This case seems precisely analagous to the overloaded
operator delete stuff that I found.

> There appears to be a problem with thunks and sj-lj exception handling,
> which is reported in http://gcc.gnu.org/ml/gcc-bugs/2001-08/msg00061.html.
> Our long term goal is to eliminate sj-lj exceptions (right?), but that
> doesn't help for now. (I don't know if this is a 2.95 regression)

I don't know either.

Thanks,

--
Mark Mitchell                mark@codesourcery.com
CodeSourcery, LLC            http://www.codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]