| // RUN: %clang_cc1 -emit-llvm-only -g | |
| template<typename T> struct Identity { | |
| typedef T Type; | |
| }; | |
| void f(Identity<int>::Type a) {} | |
| void f(Identity<int> a) {} | |
| void f(int& a) { } | |
| template<typename T> struct A { | |
| A<T> *next; | |
| }; | |
| void f(A<int>) { } | |
| struct B { }; | |
| void f() { | |
| int B::*a = 0; | |
| void (B::*b)() = 0; | |
| } |