------- Comment #16 from mark at codesourcery dot com  2009-02-02 07:15 -------
Subject: Re:  [4.4 regression] Unexplained "'<anonymous>' is
 used uninitialized in this function" warning in cc1plus -m64

rguenther at suse dot de wrote:

> Ok.  But, as opposed to inheritance, inserting empty members seems to
> make a class non-empty:
> 
> struct A {};
> struct B { A x; };

I'm surprised by that too, but the ABI definition is:

empty class

    A class with no non-static data members other than zero-width
bitfields, no virtual functions, no virtual base classes, and no
non-empty non-virtual proper base classes.

Here, we do have a non-static data member that is not a zero-width
bitfield, so I guess this isn't an empty class.

So, CLASSTYPE_EMPTY_P would be a conservative approximation at present,
but we need a new bit to capture the broader thing that is desired here.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38908

Reply via email to