1 // { dg-do compile { target c++11 } }
2 
3 // Test overload preference char*/int
4 
5 template <typename T, typename U> struct tType_equal;
6 template <typename T> struct tType_equal<T, T> { typedef void type; };
7 
8 template <typename T, typename U>
9 inline typename tType_equal<T, U>::type
10 type_equal(U) { }
11 
12 char* f( char* );
13 int f( int );
14 long int f( long int );
15 
16 void test_f()
17 {
18   // Overloading cases
19   //
20   type_equal<char*>(f(nullptr));
21   type_equal<int>(f(0));
22   decltype(nullptr) mynull = 0;
23   type_equal<char*>(f(mynull));
24 }
25