1// { dg-do assemble } 2 3template <class T> 4struct S 5{ 6 typedef T S_Type; 7}; 8 9 10template <class T> 11void foo(typename S<T>::S_Type) 12{ 13} 14 15 16template <class T> 17void foo(T) 18{ 19} 20 21 22struct S2 {}; 23 24void bar() 25{ 26 foo(S2()); // We can't unify with the first foo, so we get the second. 27} 28