https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85481
--- Comment #5 from Paolo Carlini <paolo.carlini at oracle dot com> --- A better behaved testcase: class a { ~a(); }; class b { a c; ~b() = default; }; class B { virtual ~B(); b d; }; template class E : B { }; Essentially, the ICE is triggered by the wrong use of 'template' - thus cp_parser_explicit_instantiation - additionally to the other issue.