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