// PR c++/14258 // { dg-do run } template struct A { typedef T type; typedef A type2; }; template struct B : A { using typename A::type; type t; using typename A::type2; type f() { type i = 1; return i; } }; int main() { B::type t = 4; if (t != 4) __builtin_abort(); B b; b.t = 3; if (b.t != 3) __builtin_abort(); B b2; if (b2.f() != 1) __builtin_abort(); B::type2::type tt = 12; if (tt != 12) __builtin_abort(); }