http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55120
Bug #: 55120 Summary: Inaccessible virtual base constructor does not prevent generation of default constructor Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ndkrem...@gmail.com The following code should fail to compile but does not: struct V {}; struct B : private virtual V {}; struct D : B {}; int main() { D d; } According to N3376 section 12.1 paragraph 5, the defaulted default constructor for D should be defined as deleted, as the default constructor for the virtual base V is inaccessible from D.