https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88829

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The error is now:
<source>:4:19: error: no matching function for call to 'foo(int [2147483648])'
    4 |     auto x = foo(a);
      |                   ^
<source>:3:48: note: candidate: 'template<class T, long long unsigned int N> T*
foo(T (&)[N])'
    3 |     template<class T, unsigned long long N> T* foo(T(&t)[N]) {return
t;}
      |                                                ^~~
<source>:3:48: note:   template argument deduction/substitution failed:
<source>: In substitution of 'template<class T, long long unsigned int N> T*
foo(T (&)[N]) [with T = int; long long unsigned int N = 18446744071562067968]':
<source>:4:19:   required from here
<source>:3:48: error: size of array exceeds maximum object size
'9223372036854775807'
<source>:3:55: error: size of array exceeds maximum object size
'9223372036854775807'
    3 |     template<class T, unsigned long long N> T* foo(T(&t)[N]) {return
t;}
      |                                                    ~~~^~~~~

But still emitted twice but then again MSVC also emits the error message twice
too:
<source>(2): error C2148: total size of array must not exceed 0x7fffffff bytes
<source>(2): error C2148: total size of array must not exceed 0x7fffffff bytes

Reply via email to