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