// { dg-prune-output "-Woverflow" }

template <long long i>
struct Fib
{
    static const long long value // { dg-error "overflow" }
    = Fib<i-1>::value + Fib<i-2>::value;
};

template <>
struct Fib<0>
{
   static const long long value = 0;
};

template <>
struct Fib<1>
{
   static const long long value = 1;
};

int main()
{
  return Fib<95>::value;
}
