1// { dg-do assemble } 2// g++ 1.36.1 bug 900205_04 3 4// g++ allows a class for which an implicit default X::X() constructor must 5// be created (implicitly by the compiler) to be derived from another class 6// which does not have its own default X::X() constructor. This is illegal. 7 8// Cfront 2.0 passes this test. 9 10// keywords: default constructor, inheritance 11 12// In ISO C++ 1998, such a derived class is not ill-formed, but if the 13// implicitly-declared constructor is used, then it is implicitly 14// defined and found to be ill-formed. 15 16struct struct0 { // { dg-message "note" } 17 int data_member; 18 19 struct0 (int, void *); // suppresses implicit default constructor 20}; 21 22struct0::struct0 (int, void *) // { dg-message "note" } 23{ 24} 25 26struct struct0_derived_struct_0 : public struct0 { // { dg-error "no matching|deleted" } 27}; 28 29struct0_derived_struct_0 object; // { dg-message "synthesized|deleted" } 30 31int main () { return 0; } 32