https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89055
Bug ID: 89055
Summary: wrong location with predefined macros
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: trivial
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
While adding tests for a fix for bug 87996 I noticed that the location in
diagnostic messages for excessive array size expressions involving predefined
constants like __SIZE_MAX__ (or macros like SIZE_MAX) isn't quite the same as
without such constants. It's a minor aesthetic glitch but one that suggests
there's some underlying bug somewhere that might be worth investigating.
$ cat t.C && gcc -S t.C
char a[~0LU << 1];
char b[__SIZE_MAX__ << 1];
t.C:1:13: error: size of array ‘a’ is negative
1 | char a[~0LU << 1];
| ~~~~~^~~~
t.C:2:21: error: size of array ‘b’ is negative
2 | char b[__SIZE_MAX__ << 1];
| ^