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