// { dg-do run }
|
// { dg-do run }
|
// g++ 1.36.1 bug 900207_03
|
// g++ 1.36.1 bug 900207_03
|
|
|
// g++ fails to allow objects of class or struct types to be initialized
|
// g++ fails to allow objects of class or struct types to be initialized
|
// using "constructor syntax" in cases where an implicitly generated copy
|
// using "constructor syntax" in cases where an implicitly generated copy
|
// constructor would be invoked for the initialization, and where there is
|
// constructor would be invoked for the initialization, and where there is
|
// no explicitly specified constructor associated with the type of the
|
// no explicitly specified constructor associated with the type of the
|
// object being initialized.
|
// object being initialized.
|
|
|
// Note that the type of the error changes depending upon whether or not the
|
// Note that the type of the error changes depending upon whether or not the
|
// type being initialized has any virtual functions associated with it.
|
// type being initialized has any virtual functions associated with it.
|
|
|
// Cfront 2.0 passes this test.
|
// Cfront 2.0 passes this test.
|
|
|
// keywords: implicit copy constructor, initialization
|
// keywords: implicit copy constructor, initialization
|
|
|
|
|
// Check construction for a type without virtual function members.
|
// Check construction for a type without virtual function members.
|
|
|
struct struct0 {
|
struct struct0 {
|
int data_member;
|
int data_member;
|
};
|
};
|
|
|
struct0 struct0_gbl_object0;
|
struct0 struct0_gbl_object0;
|
struct0 struct0_gbl_object1 (struct0_gbl_object0); // { dg-bogus "" }
|
struct0 struct0_gbl_object1 (struct0_gbl_object0); // { dg-bogus "" }
|
|
|
void struct0_test ()
|
void struct0_test ()
|
{
|
{
|
struct0 struct0_lcl_object1 (struct0_gbl_object0); // { dg-bogus "" }
|
struct0 struct0_lcl_object1 (struct0_gbl_object0); // { dg-bogus "" }
|
}
|
}
|
|
|
// Check construction for a type with virtual function members.
|
// Check construction for a type with virtual function members.
|
|
|
struct struct1 {
|
struct struct1 {
|
int data_member;
|
int data_member;
|
|
|
virtual void function_member ();
|
virtual void function_member ();
|
};
|
};
|
|
|
void struct1::function_member () { }
|
void struct1::function_member () { }
|
|
|
struct1 struct1_gbl_object0;
|
struct1 struct1_gbl_object0;
|
struct1 struct1_gbl_object1 (struct1_gbl_object0); // { dg-bogus "" }
|
struct1 struct1_gbl_object1 (struct1_gbl_object0); // { dg-bogus "" }
|
|
|
void struct1_test ()
|
void struct1_test ()
|
{
|
{
|
struct1 struct1_lcl_object1 (struct1_gbl_object0); // { dg-bogus "" }
|
struct1 struct1_lcl_object1 (struct1_gbl_object0); // { dg-bogus "" }
|
}
|
}
|
|
|
int main () { return 0; }
|
int main () { return 0; }
|
|
|