1 // { dg-do run } 2 extern "C" void abort (); 3 fact()4template <int a> inline int fact () 5 { 6 return a * fact<a-1> (); 7 } 8 9 template <> inline int fact<1> () 10 { 11 return 1; 12 } 13 main()14int main() 15 { 16 if (fact<3> () != 6 || fact<1> () != 1 17 || fact<3> () != 6 || fact<1> () != 1 || fact<1+0> () != 1) 18 abort (); 19 } 20