1 // { dg-prune-output "-Woverflow" }
2 
3 template <long long i>
4 struct Fib
5 {
6     static const long long value // { dg-error "overflow" }
7     = Fib<i-1>::value + Fib<i-2>::value;
8 };
9 
10 template <>
11 struct Fib<0>
12 {
13    static const long long value = 0;
14 };
15 
16 template <>
17 struct Fib<1>
18 {
19    static const long long value = 1;
20 };
21 
22 int main()
23 {
24   return Fib<95>::value;
25 }
26