// { dg-do assemble } // Origin: Mark Mitchell <mark@codesourcery.com> template <class T> struct S { int i; }; template <class T> struct X { static S<T> s[]; }; template <class T> S<T> X<T>::s[] = { { 3 } }; struct Z {}; void f(S<Z>* s); void g() { f (X<Z>::s); }