https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89055
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|wrong location with |wrong location with macros
|predefined macros |
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
In this case it is just the macro in general, not really the predefined one
that makes a difference:
#define S_MAX (18446744073709551615UL)
char a[~0LU << 1];
char b0[S_MAX << 1];
char b[__SIZE_MAX__ << 1];
---- CUT ----
<source>:2:13: error: size '18446744073709551614' of array 'a' exceeds maximum
object size '9223372036854775807'
2 | char a[~0LU << 1];
| ~~~~~^~~~
<source>:3:15: error: size '18446744073709551614' of array 'b0' exceeds maximum
object size '9223372036854775807'
3 | char b0[S_MAX << 1];
| ^
<source>:4:21: error: size '18446744073709551614' of array 'b' exceeds maximum
object size '9223372036854775807'
4 | char b[__SIZE_MAX__ << 1];
| ^