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()13main () 14 { 15 return X<A>::f (X<A>::make ()); // { dg-error "invalid use of incomplete type" } 16 } 17