https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86862
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced testcase: ``` namespace std { template <typename _CharT> struct char_traits {}; } template <class Char, template <class> class Traits> struct b { virtual ~b(); }; template <class Char> struct d : public b<Char, std::char_traits> {}; extern template class d<char>; ``` Note `std::char_traits` needs to be exactly that; otherwise the ICE does not show up.