https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93905
Bug ID: 93905 Summary: Cannot use Derived type of Base containing both enum and protected destructor Product: gcc Version: 8.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: karol.koczwara at ig dot com Target Milestone: --- enum class SampleEnumCausingIssue { }; struct BaseSnapshot { SampleEnumCausingIssue enumValue; protected: ~BaseSnapshot() = default; }; struct Derived : BaseSnapshot { }; int main(){ Derived d{}; } This doesn't compile only on gcc 8.3.* Note that after '{}' or enum removal code compiles.