// Origin: Mark Mitchell int i; template struct S { S() { ++i; } virtual void g() {} virtual void f(); static S s; }; template void S::f() { s.f(); } S si; template S S::s; int main () { si.g(); if (i != 2) return 1; else return 0; }