// { dg-do run  }
extern "C" void abort ();

template <int a> inline int fact2 ();

template <int a> inline int fact ()
{
  return a * fact2<a-1> ();
}

template <> inline int fact<1> ()
{
  return 1;
}

template <int a> inline int fact2 ()
{
  return a*fact<a-1>();
}

template <> inline int fact2<1> ()
{
  return 1;
}

int main()
{
  if (fact<3> () != 6 || fact<1> () != 1
      || fact<3> () != 6 || fact<1> () != 1 || fact<1+0> () != 1)
    abort ();
  if (fact2<3> () != 6 || fact2<1> () != 1
      || fact2<3> () != 6 || fact2<1> () != 1 || fact2<1+0> () != 1)
    abort ();
  if (fact2<4> () != 24 || fact<4> () != 24)
    abort ();
}
