// { dg-do assemble }
|
// { dg-do assemble }
|
// g++ 1.37.1 bug 900428_03
|
// g++ 1.37.1 bug 900428_03
|
|
|
// g++ fails to detect cases where a constructor for a derived class invokes
|
// g++ fails to detect cases where a constructor for a derived class invokes
|
// (either explicitly or implicitly) a private constructor for a base class.
|
// (either explicitly or implicitly) a private constructor for a base class.
|
|
|
// cfront 2.0 passes this test.
|
// cfront 2.0 passes this test.
|
|
|
// keywords: inheritance, private, accessability, constructors
|
// keywords: inheritance, private, accessability, constructors
|
|
|
struct struct_0 {
|
struct struct_0 {
|
int struct_0_data_member;
|
int struct_0_data_member;
|
|
|
private:
|
private:
|
struct_0 (int, int);
|
struct_0 (int, int);
|
public:
|
public:
|
struct_0 (int);
|
struct_0 (int);
|
};
|
};
|
|
|
struct_0::struct_0 (int i) { }
|
struct_0::struct_0 (int i) { }
|
struct_0::struct_0 (int, int) { } // { dg-error "is private" }
|
struct_0::struct_0 (int, int) { } // { dg-error "is private" }
|
|
|
struct struct_1 : public struct_0 {
|
struct struct_1 : public struct_0 {
|
|
|
struct_1 ();
|
struct_1 ();
|
};
|
};
|
|
|
struct_1::struct_1 () : struct_0 (8,9) // { dg-error "within this context" }
|
struct_1::struct_1 () : struct_0 (8,9) // { dg-error "within this context" }
|
{
|
{
|
}
|
}
|
|
|
struct struct_2 {
|
struct struct_2 {
|
struct_0 struct_2_data_member;
|
struct_0 struct_2_data_member;
|
|
|
struct_2 ();
|
struct_2 ();
|
};
|
};
|
|
|
struct_2::struct_2 () : struct_2_data_member (8,9) // { dg-error "within this context" }
|
struct_2::struct_2 () : struct_2_data_member (8,9) // { dg-error "within this context" }
|
{
|
{
|
}
|
}
|
|
|
int main () { return 0; }
|
int main () { return 0; }
|
|
|