https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70375
Bug ID: 70375 Summary: catch by value still allows explicit constructor Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: barry.revzin at gmail dot com Target Milestone: --- gcc 5.3.0 compiles this code: struct B { B() = default; explicit B(B const& ) { } }; struct D : B { }; int main() { try { throw D{}; } catch(B ) { } } but [except.handle]/15 says that the handler variable should be copy-initialized from the base class subobject of the exception object, which should be disallowed since the copy constructor is marked explicit.