// { dg-do assemble }
// GROUPS passed templates
template <class T>
void foo(T t);
template <class T>
struct S {};
int main()
{
S<int> si;
foo<S<int> >(si);
}
// { dg-do assemble }
// GROUPS passed templates
template <class T>
void foo(T t);
template <class T>
struct S {};
int main()
{
S<int> si;
foo<S<int> >(si);
}