1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
3 
4 template<typename T> struct A { };
5 
6 template<typename T, typename U = A<T*> >
7   struct B : U { };
8 
9 template<>
10 struct A<int*> {
11   void foo();
12 };
13 
14 template<>
15 struct A<float*> {
16   void bar();
17 };
18 
test(B<int> * b1,B<float> * b2)19 void test(B<int> *b1, B<float> *b2) {
20   b1->foo();
21   b2->bar();
22 }
23