// { dg-do assemble  }
// GROUPS passed scoping
// This is fixed when NEW_CLASS_SCOPING is on.

template<class T>
class ArrayG {
public:
    ArrayG();
protected:
    const unsigned INITIAL;
    T* array;			 
};

template<class T>
ArrayG<T>::ArrayG():
array(new T[INITIAL])
{ }

struct X {
    struct Correspondence {
	int i;
    };

    void fill(ArrayG<Correspondence>& a);
};
