https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88829
i.hamsa at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |i.hamsa at gmail dot com --- Comment #1 from i.hamsa at gmail dot com --- An easier reproduction is: int a[1ULL << 31]; template<class T, unsigned long long N> T* foo(T(&t)[N]) {return t;} auto x = foo(a); I've tried several versions of the compiler and the bug is in all of them. Error messages are slightly different between versions. 6.4.0 and 7.3.0: error: overflow in constant expression 8.2.0 and 8.3.0: error: size of array is negative