// { dg-do assemble } // GROUPS passed scoping // This is fixed when NEW_CLASS_SCOPING is on. template class ArrayG { public: ArrayG(); protected: const unsigned INITIAL; T* array; }; template ArrayG::ArrayG(): array(new T[INITIAL]) { } struct X { struct Correspondence { int i; }; void fill(ArrayG& a); };