// { dg-do assemble } | |
template <class T> | |
struct S | |
{ | |
typedef T S_Type; | |
}; | |
template <class T> | |
void foo(typename S<T>::S_Type) | |
{ | |
} | |
template <class T> | |
void foo(T) | |
{ | |
} | |
struct S2 {}; | |
void bar() | |
{ | |
foo(S2()); // We can't unify with the first foo, so we get the second. | |
} |