1 // PR c++/33501
2 // { dg-do compile }
3 
4 class A;	// { dg-message "forward declaration" }
5 
6 template <typename T> struct X
7 {
8   static int f (T);		// { dg-message "initializing" }
9   static const T &make ();
10 };
11 
12 int
main()13 main ()
14 {
15   return X<A>::f (X<A>::make ());	// { dg-error "invalid use of incomplete type" }
16 }
17