1// { dg-do assemble } 2 3template <class T> struct S {}; 4template <class T = int> struct S<T*> {}; // { dg-error "" } default argument 5 6template <int I, int J> struct A {}; 7template <int I> struct A<I+5, I*2> {}; // { dg-error "" } argument involves parameter 8 9template <class T, T t> struct C {}; 10template <class T> struct C<T, 1>; // { dg-error "" } type depends on parameter 11int i; 12template <class T> struct C<T*, &i>; // { dg-error "" } type depends on parameter 13 14template< int X, int (*array_ptr)[X] > class B {}; 15int array[5]; 16template< int X > class B<X,&array> { }; // { dg-error "" } type depends on parameter 17