https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71774
Bug ID: 71774 Summary: Bogus "is protected" error when list-initializing a base class with a defaulted protected constructor and a virtual function Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rs2740 at gmail dot com Target Milestone: --- Reduced from http://stackoverflow.com/q/38213809/2756719. Repro: class Meow { protected: Meow() =default; virtual void f() {} }; class Purr : public Meow { public: Purr() : Meow{} {} }; prog.cc: In constructor 'Purr::Purr()': prog.cc:12:14: error: 'constexpr Meow::Meow()' is protected within this context : Meow{} ^ prog.cc:4:5: note: declared protected here Meow() =default; ^~~~ Possibly related to PR63151, however this example reproduces in GCC 4.7.3 and 4.8.5 (on Wandbox), while that PR is known to work in 4.8.2.