summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/partial2.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/partial2.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/partial2.C23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/partial2.C b/gcc/testsuite/g++.old-deja/g++.pt/partial2.C
new file mode 100644
index 000000000..6a8a60a2f
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/partial2.C
@@ -0,0 +1,23 @@
+// { 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 -