p11.cpp revision 5c7bf42ef16dc767615bed10f3b7b3c1265314e1
1// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3template <class T> T* f(int);	// #1
4template <class T, class U> T& f(U); // #2
5
6void g() {
7  int *ip = f<int>(1);	// calls #1
8}
9
10template<typename T>
11struct identity {
12  typedef T type;
13};
14
15template <class T>
16  T* f2(int, typename identity<T>::type = 0);
17template <class T, class U>
18  T& f2(U, typename identity<T>::type = 0);
19
20void g2() {
21  int* ip = f2<int>(1);
22}
23