------- Comment #3 from crowl at google dot com 2008-11-23 23:50 ------- The relevant change in DR 178 is
To value-initialize an object of type T means: * if T is a class type (clause 9 [class]) with a user-declared constructor (12.1 [class.ctor]), then the default constructor for T is called (and the initialization is ill-formed if T has no accessible default constructor); The default constructor for derived should call the default constructor for base. The base constructor is defined in another file, and so any incorrect code in the base constructor should be flagged in another compilation. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38232