summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/spec21.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/spec21.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/spec21.C16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec21.C b/gcc/testsuite/g++.old-deja/g++.pt/spec21.C
new file mode 100644
index 000000000..4107306d1
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/spec21.C
@@ -0,0 +1,16 @@
+// { dg-do assemble }
+
+template <class T> struct S {};
+template <class T = int> struct S<T*> {}; // { dg-error "" } default argument
+
+template <int I, int J> struct A {};
+template <int I> struct A<I+5, I*2> {}; // { dg-error "" } argument involves parameter
+
+template <class T, T t> struct C {};
+template <class T> struct C<T, 1>; // { dg-error "" } type depends on parameter
+int i;
+template <class T> struct C<T*, &i>; // { dg-error "" } type depends on parameter
+
+template< int X, int (*array_ptr)[X] > class B {};
+int array[5];
+template< int X > class B<X,&array> { }; // { dg-error "" } type depends on parameter