1// { dg-do compile }
2// Origin:
3
4// PR c++/6716
5// ICE in complex class structure when components are incomplete
6
7template <class T> struct X {
8  T t;				// { dg-error "incomplete" }
9};
10
11template <class T> struct Y {
12  X<T> x;			// { dg-message "required" }
13};
14
15template <class T> struct Z {	// { dg-message "declaration" }
16  Y<Z<T> > y;			// { dg-message "required" }
17};
18
19struct ZZ : Z<int>
20{
21};
22