1// { dg-do run } 2// Origin: Mark Mitchell <mark@codesourcery.com> 3 4int i; 5 6template <class T> 7struct S { 8 S() { ++i; } 9 10 virtual void g() {} 11 virtual void f(); 12 13 static S s; 14}; 15 16template <class T> 17void S<T>::f() { 18 s.f(); 19} 20 21S<int> si; 22 23template <class T> 24S<T> S<T>::s; 25 26int main () 27{ 28 si.g(); 29 if (i != 2) 30 return 1; 31 else 32 return 0; 33} 34