// { dg-do link } // { dg-options "-Wno-deprecated" } struct B { typedef int I; }; template struct D1 : public B { }; template struct D2 : public D1 { I i; // { dg-error "" } not a type }; template <> struct D1 { typedef double I; }; template void f(T); template <> void f(double) {} int main() { D2 d2i; f(d2i.i); // { dg-error "" } no member i }