2 // { dg-options "-ftemplate-depth-15" }
3 template<unsigned int nFactor>
6 enum { nValue = nFactor * Factorial<nFactor - 1>::nValue }; // { dg-error "depth exceeds maximum" }
7 // { dg-message "recursively instantiated" "" { target *-*-* } 6 }
8 // { dg-error "incomplete type" "" { target *-*-* } 6 }
11 template<> // { dg-error "expected" }
17 static const unsigned int FACTOR = 20;
21 Factorial<FACTOR>::nValue;