// { dg-do assemble } // g++ 1.36.1 bug 900205_04 // g++ allows a class for which an implicit default X::X() constructor must // be created (implicitly by the compiler) to be derived from another class // which does not have its own default X::X() constructor. This is illegal. // Cfront 2.0 passes this test. // keywords: default constructor, inheritance // In ISO C++ 1998, such a derived class is not ill-formed, but if the // implicitly-declared constructor is used, then it is implicitly // defined and found to be ill-formed. struct struct0 { // { dg-message "note" } int data_member; struct0 (int, void *); // suppresses implicit default constructor }; struct0::struct0 (int, void *) // { dg-message "note" } { } struct struct0_derived_struct_0 : public struct0 { // { dg-error "no matching|deleted" } // { dg-message "candidate" "candidate note" { target *-*-* } 26 } }; struct0_derived_struct_0 object; // { dg-message "synthesized|deleted" } int main () { return 0; }