1 // RUN: clang -fsyntax-only -verify %s
2 template<typename T> struct A { };
3 
4 typedef A<int> A_int;
5 
6 float *foo(A<int> *ptr, A<int> const *ptr2) {
7   if (ptr)
8     return ptr; // expected-error{{incompatible type returning 'A<int> *', expected 'float *'}}
9   else if (ptr2)
10     return ptr2; // expected-error{{incompatible type returning 'A<int> const *', expected 'float *'}}
11   else {
12     // FIXME: This is completely bogus, but we're using it temporarily
13     // to test the syntactic sugar for class template specializations.
14     int *ip = ptr;
15     return 0;
16   }
17 }
18