// { dg-do assemble } // { dg-options "-fpermissive" } template struct B { typedef int I; }; template struct D : public B { void f(); }; template void D::f() { I(); // { dg-warning "" } } template <> struct B { void I(); }; int main() { D di; di.f(); }