// { dg-do assemble } // Tests partial specialization template<class T> struct foo1 {}; template<class T, int n> struct foo1<T[n]>; foo1<char> bar1; foo1<char[10]> baz1; // { dg-error "" } incomplete type template<class T> struct foo2 {}; template<class T, unsigned n> struct foo2<T[n]>; foo2<char> bar2; foo2<char[10]> baz2; // { dg-error "" } incomplete type typedef unsigned int other1_t; template<class T> struct foo3 {}; template<class T, other1_t n> struct foo3<T[n]>; foo3<char> bar3; foo3<char[10]> baz3; // { dg-error "" } incomplete type - typedef int other2_t; template<class T> struct foo4 {}; template<class T, other1_t n> struct foo4<T[n]>; foo4<char> bar4; foo4<char[10]> baz4; // { dg-error "" } incomplete type -