https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110890
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced testcase: ``` #include <cstdint> using T1 = char[1ul + (unsigned long)INT32_MAX]; template <typename _Tp> inline constexpr bool is_array_v = false; template <typename _Tp> inline constexpr bool is_array_v<_Tp[]> = true; template <typename _Tp, unsigned long _Num> inline constexpr bool is_array_v<_Tp[_Num]> = true; static_assert(is_array_v<T1>); ``` The question will T1 be a valid array definition? For 32bit it is not. For 64bit it might be ...