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

            Bug ID: 121044
           Summary: False positive -Warray-bounds iwith GCC 14 and NEON
                    intrinsics
           Product: gcc
           Version: 14.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jpalus+gcc at fastmail dot com
  Target Milestone: ---

Created attachment 61846
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61846&action=edit
reproducer

Based on mbedtls build failure (upstream report
https://github.com/Mbed-TLS/mbedtls/issues/9003) attached reproducer for false
positive -Warray-bounds when targeting aarch64:

$ gcc -O2 -Warray-bounds repro.c -c -o repro.o 
In function ‘xor’,
    inlined from ‘foo’ at repro.c:27:5:
repro.c:19:17: warning: array subscript 48 is outside array bounds of ‘unsigned
char[48]’ [-Warray-bounds=]
   19 |         r[i] = a[i] ^ b[i];
      |                ~^~~
repro.c: In function ‘foo’:
repro.c:25:19: note: at offset 48 into object ‘tmp’ of size 48
   25 |     unsigned char tmp[48] = { 0 };
      |                   ^~~
In function ‘xor’,
    inlined from ‘foo’ at repro.c:27:5:
repro.c:19:14: warning: array subscript 48 is outside array bounds of ‘unsigned
char[48]’ [-Warray-bounds=]
   19 |         r[i] = a[i] ^ b[i];
      |         ~~~~~^~~~~~~~~~~~~
repro.c: In function ‘foo’:
repro.c:25:19: note: at offset 48 into object ‘tmp’ of size 48
   25 |     unsigned char tmp[48] = { 0 };
      |                   ^~~

Note that it appears to affect GCC 14.x only (13.x/15.x seem to work fine
according to godbolt).

Reply via email to