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];
      |                     ^

Reply via email to