https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87108
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- Reduced: template<unsigned long N> struct array { }; template<typename T> struct A; // incomplete template<int N> struct A<array<N>> { }; A<array<2>> a; 91271.cc:10:13: error: aggregate ‘A<array<2> > a’ has incomplete type and cannot be defined A<array<2>> a; ^ Seems related to core issue 1647