// { dg-do assemble } // { dg-options "" } template void f(T); template <> void f(int) {} struct B { typedef int I; }; template struct D1 : virtual public B { typedef T I; }; template struct D : virtual public B, public D1 { void g() { I i; f(i); } }; int main() { D d; d.g(); }