1// { dg-do assemble } 2// Tests partial specialization 3template<class T> struct foo1 {}; 4template<class T, int n> struct foo1<T[n]>; 5foo1<char> bar1; 6foo1<char[10]> baz1; // { dg-error "" } incomplete type 7 8template<class T> struct foo2 {}; 9template<class T, unsigned n> struct foo2<T[n]>; 10foo2<char> bar2; 11foo2<char[10]> baz2; // { dg-error "" } incomplete type 12 13typedef unsigned int other1_t; 14template<class T> struct foo3 {}; 15template<class T, other1_t n> struct foo3<T[n]>; 16foo3<char> bar3; 17foo3<char[10]> baz3; // { dg-error "" } incomplete type - 18 19typedef int other2_t; 20template<class T> struct foo4 {}; 21template<class T, other1_t n> struct foo4<T[n]>; 22foo4<char> bar4; 23foo4<char[10]> baz4; // { dg-error "" } incomplete type - 24