http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48930
--- Comment #3 from Johannes Schaub <schaub.johannes at googlemail dot com> 2011-05-08 22:02:29 UTC --- (In reply to comment #2) > (In reply to comment #1) > > I think it can be argued that this is a bug in the Standard rather than in > > GCC. > > The Standard says that members of C are zero initialized. > > > > Let me please be more precise than that. I wanted those notes to only apply to > the value initialization of "c2". I agree that the default initialization for > "c1" is still ill-formed and should be diagnosed. .. and final comment for today, I missed that this only value-initializes "c2" if it has a default constructor! Since it doesn't have a default constructor, 8.5.4 will not hit bullet p3bullet1, but p3bullet2 because "C" is an aggregate class. As a consequence, I believe aggregate initialization happens and the initialization of c2 is well-formed this way too. Shouldn't comment this late in the day. Perhaps I missed something again :)