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

            Bug ID: 113026
           Summary: Bogus -Wstringop-overflow warning on simple memcpy
                    type loop
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

The following testcase has a bogus warning on trunk back to at least gcc 11.

bergner@ltcden2-lp1:LTC193379$ cat bug.c 
char dst[16];
long n = 16;

void
foo (char *src)
{
  for (long i = 0; i < n; i++)
    dst[i] = src[i];
}

bergner@ltcden2-lp1:LTC193379$ /opt/gcc-nightly/trunk/bin/gcc -S -O3
-mcpu=power8 bug.c 
bug.c: In function ‘foo’:
bug.c:8:12: warning: writing 1 byte into a region of size 0
[-Wstringop-overflow=]
    8 |     dst[i] = src[i];
      |     ~~~~~~~^~~~~~~~
bug.c:1:6: note: at offset 16 into destination object ‘dst’ of size 16
    1 | char dst[16];
      |      ^~~
bug.c:8:12: warning: writing 1 byte into a region of size 0
[-Wstringop-overflow=]
    8 |     dst[i] = src[i];
      |     ~~~~~~~^~~~~~~~
bug.c:1:6: note: at offset 17 into destination object ‘dst’ of size 16
    1 | char dst[16];
      |      ^~~

Reply via email to