1// PR c++/52126
2// { dg-do compile }
3
4template<typename T>
5struct A
6{
7  int foo;
8
9  struct B;
10  struct C;
11  struct D;
12  struct E;
13};
14
15template <class T>
16struct A<T>::B : A<T>
17{
18  using A::foo;
19};
20
21template <class T>
22struct A<T>::C : A
23{
24  using A::foo;
25};
26
27template <class T>
28struct A<T>::D : A<T>
29{
30  using A<T>::foo;
31};
32
33template <class T>
34struct A<T>::E : A
35{
36  using A<T>::foo;
37};
38