1// { dg-do assemble  }
2
3class Base {
4public:
5  class Bar { public: virtual ~Bar() {} };
6};
7
8class Derived : public Base {
9public:
10  class Bar : public Base::Bar {};
11};
12
13template <class T>
14struct XYZ : public T::Bar {
15  XYZ(): T::Bar() { }
16};
17
18void test() {
19  XYZ<Base> b;
20  XYZ<Derived> d;
21}
22