1// PR c++/35146 2 3template <typename T> struct S {}; 4 5template <typename R> struct ref; 6template <> struct ref<double> { typedef double result; }; 7 8template <typename T> 9void foo(typename ref<T>::result, S<T>*); 10template <> 11void foo(S<double>, S<double>*); // { dg-error "does not match" } 12template <> 13void foo(double alpha, S<double>* x) 14{ 15 alpha; x; 16} 17