This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: g++ and aliasing bools
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Joe Buck <jbuck at synopsys dot COM>, Neil Booth <neil at daikokuya dot demon dot co dot uk>
- Cc: Paolo Carlini <pcarlini at unitus dot it>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Sat, 26 Jan 2002 22:01:09 -0800
- Subject: Re: g++ and aliasing bools
- References: <200201252323.PAA21709@atrus.synopsys.com>
> The argument can be extended to handle non-virtual single or multiple
> inheritance: from the C point of view,
This isn't obvious yet.
You have to at least discuss zero-sized base classes and whether or not
GNU C handles them in the same way -- including cases like this:
struct A {};
struct B : public A {};
struct C : public A {};
struct D : public B, C {};
Here, D has size two to avoid having two A's at the same address.
If C did not derive from A, D would have size one. In GNU C, does:
struct A {};
struct B { struct A __base1; };
struct C { struct A __base1; };
struct D {
struct B __base1;
struct C __base2;
};
have size two?
Does the variant where C is empty have size 1?
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com