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