------- 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