// { dg-do assemble } | |
class A { | |
public: | |
int i; | |
A(int j) : i(j){} | |
}; | |
class B : protected A { | |
public: | |
B(int j) : A(j){} | |
void f(){ | |
A k(*this); | |
} | |
}; | |
class C : protected B { | |
public: | |
C(int j) : B(j){} | |
void f(); | |
void g(){ | |
A k(i); | |
} | |
}; | |
class D : public C { | |
public: | |
D(int w) : C(i) {} | |
void j() { A k(*this); } | |
void h() { i=3; } | |
}; | |
void C::f() { | |
A k(*this); | |
} | |
B b(3); | |
int | |
main() { | |
A *z = &b; // { dg-error "" } | |
} |