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