// PR c++/38579 struct P { protected: P() {} P(const P&) {} }; struct B : protected P { B() {} }; struct C : public P { // C can access P's copy ctor, but can't convert b to const P&. C(const B& b) : P(b) {} // { dg-error "inaccessible base" } }; void foo() { B b; C c(b); }