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