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   static const bool value = sizeof (f (make ())) == sizeof (int);	// { dg-error "invalid use of incomplete type" }
11 };
12 
13 int
main()14 main ()
15 {
16   return X <A>::value;
17 }
18