1 // PR c++/42329
2 
3 template <typename T1, typename T2>
4 class B {};
5 
6 template <typename T>
7 class D : public B<T, T> {};
8 
9 template <template <typename, typename> class U, typename T1, typename T2>
g(U<T1,T2> *)10 void g(U<T1, T2>*) {}
11 
main()12 int main()
13 {
14   D<long> dl;
15   g(&dl); // error: no matching function for call to ‘g(D<long int>*)’
16 }
17