// { dg-do run } extern "C" void abort(); template struct S {}; S si; template int f(T t) { struct S { int g(int i) { return i + 2; } }; S s; return s.g(t) + s.g(t); } int main() { if (f(3) != 10) abort(); }